如何通过运行迁移在rails中创建表

时间:2011-01-18 09:04:59

标签: ruby-on-rails migration

我已经创建了一个用于在我的数据库中创建表UserDetails的迁移文件..它运行正常b4 ......

在不知不觉中我删除了那张表进行了一些修改..但是现在我给了

rake db:migrate ..它没有创建表..

我有迁移文件.. BUt当我给rake db:迁移它没有创建..怎么办?

3 个答案:

答案 0 :(得分:1)

Rails维护一个'schema_migrations'表,以了解已经运行的迁移,并且不会运行已经完成的迁移。因为,您已经运行过一次迁移,所以它会使用版本号更新'schema_migrations'表。迁移。您可以执行ra db:rollback以还原上次迁移运行,或者执行db:migrate:down VERSION=<version_number>以还原之前运行的任何迁移。

现在,我建议您知道版本号(文件的时间戳),您可以从'schema_migrations'表中手动删除并重新运行db:migrate

答案 1 :(得分:0)

Rake将最近迁移的时间存储在数据库中 - 如果您尝试运行的迁移时间过早,则不会使用rake db:migrate运行。

我不知道如何手动运行特定的迁移,抱歉:/

答案 2 :(得分:0)

您是否可以按照指南中的说明运行该特定迁移。 http://guides.rubyonrails.org/migrations.html#being-specific

我之前按时间戳运行了特定的迁移。看起来它也适用于这种情况。