ruby-on-rails - Rails db migrate 生成迁移文件

标签 ruby-on-rails

在处理项目时,我会在记事本文件中记录对数据库所做的所有更改。然后,稍后,我手动将所有更改写入 rails 的数据库迁移文件中。

但应该可以将我的数据库备份的模式与我的数据库的新版本进行比较,并自动检测差异。并自动生成rails db迁移文件。

是否有工具可以比较两个数据库模式并自动生成 Rails 的数据库迁移文件?

最佳答案

据我所知,没有工具可以自动执行此操作,但是,您只需使用带有源代码控制的 rake db:schema:dump 即可完成大部分工作。

创建一个新的 Rails 项目并执行以下操作:

  1. 更新 database.yml 以连接到您的第一个数据库。
  2. 使用 rake db:schema:dump 填充 schema.rb 并将 schema.rb 提交到 git。
  3. 更新 database.yml 以连接到您的第二个数据库并再次运行 rake db:schema:dump
  4. schema.rb 上使用 git diff 比较变化。这可以很容易地映射到迁移。

使用源代码控制的好处是,在迁移运行到第二个数据库的架构转储后,您可以通过比较 schema.rb 来测试迁移。

关于ruby-on-rails - Rails db migrate 生成迁移文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36689842/

相关文章:

ruby-on-rails - 错误 : rails aborted! LoadError : dlopen(/Users. ..但是是一个不兼容的架构(有 'x86_64' ,需要 'arm64e' ))

ruby-on-rails - Rails 5,Devise,Omniauth,Twitter

ruby-on-rails - 无法使用 Paperclip 4.0 Rails 3 上传图像

ruby-on-rails - Rails Controller 在浏览器中呈现 JSON

ruby-on-rails - Rails 键值数组到表

javascript - 如何将参数传递给 Rails 中的 js.erb?

ruby-on-rails - 忽略部分正则表达式的大小写

jquery - jQuery 单击事件上的表单提交仅选择第一个表单

sql - Ruby on Rails SQL语句错误

javascript - Ruby on Rails 应用程序中的 React .js.jsx 扩展