Удалена схема переноса Ruby on Rails sqlite3 - PullRequest
1 голос
/ 20 апреля 2011

Поэтому я был глуп и удалил все строки в schema_migration моей базы данных sqlite3Как это исправить?Разрушил ли я весь свой проект?

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

Вы тоже удалили файлы db \ schema.rb или db \ migrate?

В первом случае вы можете попробовать переместить файл БД в другое место и выполнить:

rake db:migrate

Если вы удалили schema.rb и файлы миграции, вы можете выполнить

rails generate migration

и пересоздать миграцию вручную.

1 голос
/ 20 апреля 2011

Пока вам не нужно снова запускать rake db:migrate, все будет в порядке. В противном случае вы столкнетесь с проблемами.

Я, вероятно, должен сделать это в 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

0 голосов
/ 20 апреля 2011

или вы можете просто убить БД и перезапустить

rake db:drop; rake db:migrate; rake db:test:prepare
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...