首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已删除架构迁移Ruby on Rails sqlite3

已删除架构迁移Ruby on Rails sqlite3
EN

Stack Overflow用户
提问于 2011-04-20 12:46:44
回答 3查看 786关注 0票数 1

所以我很愚蠢,删除了我的sqlite3数据库的schema_migration中的所有行。我该如何解决这个问题?我毁了我的整个项目吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-20 14:33:49

您是否也删除了db\schema.rb或db\migrate文件?

在第一种情况下,您可以尝试将db文件移动到其他位置并执行:

代码语言:javascript
复制
rake db:migrate

如果删除了schema.rb和迁移文件,则可以执行

代码语言:javascript
复制
rails generate migration

并手动重新创建迁移。

票数 2
EN

Stack Overflow用户

发布于 2011-04-20 15:50:42

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

我可能应该在Ruby语言中做这件事,但我更熟悉Perl -所以这里有一个快速脚本,它将帮助您恢复schema_migrations表

代码语言:javascript
复制
!#/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命令行工具中

票数 1
EN

Stack Overflow用户

发布于 2011-04-20 14:54:17

或者,您可以直接终止数据库,然后重新启动

代码语言:javascript
复制
rake db:drop; rake db:migrate; rake db:test:prepare
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5725638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档