ruby-on-rails - 管理 Git 操作创建的 schema.rb 中的冲突

标签 ruby-on-rails git migration

我创建了一个迁移,运行 rake db:migrate,这增加了我的 db/schema.rb 版本号。然后我执行了一个 git fetch origin master 并看到我的团队成员进行了更改。所以我做了一个 git stash 和一个 git rebase FETCH_HEAD,然后是一个 git stash pop。这导致了 db/schema.rb 中版本号的冲突。

Upstream>>>
ActiveRecord::Schema.define(:version => 20110930179257) do
===========
ActiveRecord::Schema.define(:version => 20110930161932) do
<<<Stashed

我认为适当的解决方法是手动将版本号增加到高于上游的版本号。

这是明智的还是坏消息?

谢谢, 最大

最佳答案

如果您当前的数据库具有正确的模式,您应该:

  • 运行挂起的迁移(如果有的话)

    rake db:migrate
    
  • 从您当前的数据库模式覆盖您的schema.rb

    rake db:schema:dump
    
  • 并提交

关于ruby-on-rails - 管理 Git 操作创建的 schema.rb 中的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614215/

相关文章:

php - 在 Laravel 5.5 Migrations with Postgres 中定义字段

ruby-on-rails - Rails - 地理编码器 Gem : geocoded_by with 2 tables

ruby-on-rails - Ruby on rails : Remote Upload A File Using AJAX

linux - 在 Git post-receive hook 中杀死 Grunt 进程

git - 使用 SSH 的 Aptana 和 GitLab 版本控制

java - 焊接-001408 : Unsatisfied dependencies for type Validator with qualifiers @Default

ruby-on-rails - rspec 没有说预期的 : 15. 35,使用 == 得到 : 15. 35,这对我来说没有意义?

ruby-on-rails - RoR 野外的 RSpec 和 Cucumber

windows - 如何在 web 项目 (ASP) 的 Windows 工作站/服务器上将 Git 设置为 VCS?

amazon-web-services - 将用java编写的Azure函数迁移到AWS Lambda函数