删除架构迁移Ruby on Rails sqlite3

|| 所以我很笨,删除了sqlite3数据库的schema_migration中的所有行。我该如何解决?我破坏了我的整个项目吗?
已邀请:
您是否也删除了db \\ schema.rb或db \\ migrate文件? 在第一种情况下,您可以尝试将db文件移动到其他位置并执行:
rake db:migrate
如果删除了schema.rb和迁移文件,则可以执行
rails generate migration
并手动重新创建迁移。
只要您不需要再次运行2,就可以了。否则您会遇到问题。 我可能应该在Ruby中执行此操作,但是我对Perl更加熟悉-因此,这是一个快速脚本,可帮助您重新了解schema_migrations表
!#/usr/bin/perl

opendir(DH, \'path/to/rails/app/db/migrate\');

while($filename = readdir(DH))
{
    next unless $filename =~ /\\.rb$/;
    @parts = split(\"_\", $filename);
    print \"INSERT INTO schema_migration VALUES (\" . $parts[0] . \");\\n\";
}
运行脚本将为您提供一系列插入语句,然后将这些语句可以复制并粘贴到sqllite命令行工具中
或者您可以杀死数据库并重新启动
rake db:drop; rake db:migrate; rake db:test:prepare

要回复问题请先登录注册