Ruby on rails 每次提交时都会意外更改架构
每次我提交有迁移的代码时,出于某种原因,我都会得到一堆我没有编写的模式更改,这些更改来自以前的PRs 例如,我将编写一个迁移,在User上添加一个列……但是在运行迁移之后,模式文件将包含对以前的旧代码的10个更改,这些更改根本不在当前分支中Ruby on rails 每次提交时都会意外更改架构,ruby-on-rails,migration,schema,Ruby On Rails,Migration,Schema,每次我提交有迁移的代码时,出于某种原因,我都会得到一堆我没有编写的模式更改,这些更改来自以前的PRs 例如,我将编写一个迁移,在User上添加一个列……但是在运行迁移之后,模式文件将包含对以前的旧代码的10个更改,这些更改根本不在当前分支中 如何解决此问题?有两种可能性: 您尚未从schema.rb文件中删除您试图忽略的以前迁移的代码 您对rails非常陌生,尝试手动删除schema.rb文件中的字段,认为它会与数据库同步 无论哪种方式:删除所有不需要的迁移文件(如果尚未删除),然后使用以下命令
如何解决此问题?有两种可能性:
rakedb:rollbackversion=0
然后:现在您有了正确的迁移文件,请使用以下命令迁移到数据库:
rakedb:migrate
这将为您提供一个准确的schema.rb文件模式文件将反映到数据库模式。我认为您在以前的旧代码中更改了模式,但没有恢复(回滚)它,删除了它,并开始为新迁移编码 您要做的就是消除代码和数据库之间的差异 解决方案: 签出到旧分支并通过运行rake db:migrate:down VERSION=20161106xxxxxx回滚架构更改 或
rakedb:migrate
,您将不会在模式文件中看到额外的更改