Ruby on rails 看起来rails是一个迁移

Ruby on rails 看起来rails是一个迁移,ruby-on-rails,rails-migrations,Ruby On Rails,Rails Migrations,当我新建迁移并运行它时,出现错误: $rake数据库:迁移 ==CreateReadings:正在迁移================================================ -创建_表:e_读数中止!发生错误,此迁移和所有后续迁移已取消: SQLite3::SQLException:表e_读数已存在 而这个e_读数是我使用迁移创建的最后一个表 迁移文件名为:20120508145115_create_e_readings.rb db/schema.rb中的版本为: :版

当我新建迁移并运行它时,出现错误:

$rake数据库:迁移 ==CreateReadings:正在迁移================================================ -创建_表:e_读数中止!发生错误,此迁移和所有后续迁移已取消:

SQLite3::SQLException:表e_读数已存在

而这个e_读数是我使用迁移创建的最后一个表

迁移文件名为:20120508145115_create_e_readings.rb

db/schema.rb中的版本为:

:版本=>20120508145115


rails似乎忘记了我已经运行了这个迁移并尝试重新播放它,所以出现了错误,但为什么会发生这种情况,我如何解决这个问题?

似乎您以前可能运行过它,但由于某种原因在创建表后失败了。如果您确定它已经运行,可以手动将记录添加到schema_migrations表中,版本为20120508145115


如果这只是一个开发环境,并且您不介意将其吹走,那么您也可以运行rake db:reset,这将删除、创建、加载架构并重新设置其种子。

似乎您以前可能运行过它,但由于某种原因,在创建表之后它失败了。如果您确定它已经运行,可以手动将记录添加到schema_migrations表中,版本为20120508145115


如果这只是一个开发环境,您不介意将其删除,您还可以运行rake db:reset,这样就可以删除、创建、加载模式并重新设置种子。

我认为beerlington是正确的。您的迁移可能在第一次运行时失败。除了他的建议之外,您还可以尝试手动从数据库中删除表,然后重新运行迁移,以查看第一次出现的错误。您的迁移可能在第一次运行时失败。除了他的建议之外,您还可以尝试手动从数据库中删除表,然后重新运行迁移,以查看第一次出现的错误

我同意比灵顿和安迪的观点。如果是开发环境,请在终端中尝试以下操作:

rake db:drop
rake db:create
rake db:migrate
这将破坏您的数据库,重新创建它并运行所有迁移

您可以尝试的另一件事是使用rake db:rollback回滚,直到您看到此迁移或回滚之前的迁移,然后再次从该点运行rake db:migrate,直到您的最近一点。rake db:rollback一次回滚一个迁移文件

不过,为了确保没有什么好笑的东西留下来,我会随手再做一次


希望这能有所帮助。

我同意比灵顿和安迪的观点。如果是开发环境,请在终端中尝试以下操作:

rake db:drop
rake db:create
rake db:migrate
这将破坏您的数据库,重新创建它并运行所有迁移

您可以尝试的另一件事是使用rake db:rollback回滚,直到您看到此迁移或回滚之前的迁移,然后再次从该点运行rake db:migrate,直到您的最近一点。rake db:rollback一次回滚一个迁移文件

不过,为了确保没有什么好笑的东西留下来,我会随手再做一次


希望这能有所帮助。

谢谢,模式中的:version=>20120508145115用于什么?rails似乎根据schema_migrations表中的记录运行迁移,那么:version=>20120508145115是多余的吗?谢谢,那么:version=>20120508145115在schema中用于什么?rails似乎根据schema_migrations表中的记录运行迁移,那么:version=>20120508145115冗余吗?