2011-04-20 89 views

回答

2

你删除DB \ schema.rb或DB \迁移文件呢?

在第一种情况下,你可以尝试移动数据库文件到其他位置,并执行:

rake db:migrate 

如果卸下schema.rb和迁移文件,您可以执行

rails generate migration 

和手动重新迁移。

+0

对不起,让我澄清一下,我使用的SQLite数据库浏览器编辑我development.sqlite3文件,并删除了架构迁移表的一切。 – Justin 2011-04-20 13:09:51

+0

只需删除sqlite数据库文件并启动'rake db:migrate'。它重新创建数据库。 – demas 2011-04-20 13:14:33

+0

太棒了,谢谢! – Justin 2011-04-20 13:22:06

0

或者你可以杀死DB并重新启动

rake db:drop; rake db:migrate; rake db:test:prepare 
+1

多重任务可以被传递到耙:'耙分贝:滴分贝:迁移分贝:测试:prepare' – 2012-05-07 19:37:39

1

只要你不需要再次运行rake db:migrate你会没事的。否则,你会遇到问题。

我也许应该这样做是红宝石,但我更熟悉Perl - 所以这里有一个快速的脚本来帮你resurect的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"; 
} 

运行脚本会给你一系列的INSERT语句那么就可以复制并粘贴到sqllite命令行工具