Leo*_*own 1 postgresql ruby-on-rails database-schema
我最近查看了我的 schema.rb 文件,并惊讶地发现我的数据库中确实存在的某些列没有出现,并且一些表完全丢失了。通过“def change add_column”迁移将丢失的列添加到数据库中,尽管以这种方式添加的某些列确实在 schema.rb 中按预期显示。
仔细检查后,我意识到自从我创建用户表以来,schema.rb 还没有更新。
20151019205241_create_users.rb:
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps null: false
end
end
end
Run Code Online (Sandbox Code Playgroud)
这在实践中并没有给我带来问题,但我认为 schema.rb 应该保持自动更新,并且更新它以重新创建数据库非常重要。谁能帮我弄清楚为什么它不会更新?
一种可能性是当我将数据库从 sqlite3 切换到 postgresql 时它停止更新。我记不太清楚了,但我认为时机是有道理的。
您可以使用rake db:schema:dump从当前数据库结构重新创建文件。
架构文件独立于驱动程序,因此从 sqlite3 迁移到 PostgreSQL 无关紧要。确保version文件中的定义不大于 current 当前日期。您还可以将整个文件添加到问题的片段中。
| 归档时间: |
|
| 查看次数: |
1930 次 |
| 最近记录: |