Rails应用程序具有schema.rb但没有迁移文件

时间:2015-12-11 18:56:45

标签: ruby-on-rails ruby rake

我正在接管一个有一个填充的schema.rb文件的Rails项目,但奇怪的是它没有一个迁移文件夹而且没有迁移文件。我对语言很陌生但是没有基于迁移文件创建模式文件?如果我运行" rake db:migrate",架构文件中的现有表将被删除。这是否意味着之前的开发人员手动编辑了模式文件?我可以在安装Ruby / Rails时删除迁移文件吗?

此外,日志显示以下错误:

PG::UndefinedTable: ERROR:  relation "nameoftable" does not exist

这是否与没有迁移文件的事实有关?

我正在努力创建迁移文件,但我想确认我正确理解了这一点。

提前致谢。

1 个答案:

答案 0 :(得分:1)

  

是否根据迁移文件创建了架构文件?

是的,但他们可以独立生存。我可以创建我的架构并通过多次迁移对其进行修改,然后在将项目发送给您之前删除迁移。

Rails仍然可以正常运行,因为他关心的是schema.rb文件的内容。

如果要构建数据库,则应从schema.rb加载架构,而不是使用rake db:migrate。在一个非常大且寿命很长的Rails项目中,您无法保证所有迁移都能够从第一个迁移到最后一个。

您设置数据库的方式是使用命令

rake db:schema:load

然后从那里开始,您可以继续创建新的迁移。您实际上并不需要旧的迁移文件。