use*_*182 2 ruby rake ruby-on-rails
我正在接管一个 Rails 项目,该项目有一个填充的 schema.rb 文件,但奇怪的是它没有迁移文件夹,也没有迁移文件。我对这门语言很陌生,但是架构文件不是根据迁移文件创建的吗?如果我运行“rake db:migrate”,架构文件中的现有表将被删除。这是否意味着之前的开发人员手动编辑了架构文件?我可以在安装 Ruby/Rails 时删除迁移文件吗?
此外,日志显示此错误:
PG::UndefinedTable: ERROR: relation "nameoftable" does not exist
Run Code Online (Sandbox Code Playgroud)
这是否与没有迁移文件有关?
我现在正在创建迁移文件,但我想确认我是否正确理解了这一点。
提前致谢。
架构文件不是根据迁移文件创建的吗?
是的,但他们可以独立生存。我可以创建我的架构并通过多次迁移对其进行修改,然后在将项目发送给您之前删除迁移。
Rails 仍然会正常启动,因为他关心的是schema.rb。
如果你想构建你的数据库,你应该加载模式schema.rb而不是使用rake db:migrate. 在一个非常大且长期存在的 Rails 项目中,无法保证所有迁移都能从第一个迁移到最后运行。
设置数据库的方式是使用命令
rake db:schema:load
Run Code Online (Sandbox Code Playgroud)
然后,您可以在未来继续创建新的迁移。您实际上并不需要旧的迁移文件。
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |