Ruby on Rails - ошибка при запуске сервера
В настоящее время я работаю над проектом рельсов. Когда я попытался запустить сервер rails, он выдал следующую ошибку:
=> Booting WEBrick
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/var/lib/gems/1.9.1/gems/activerecord-3.1.3/lib/active_record/connection_adapters
/sqlite_adapter.rb:439:in `table_structure': Could not find table 'dbrick'
(ActiveRecord::StatementInvalid)
Моё имя таблицы - "дбрик". Я также пытался грабли db: drop и грабли db: mirgrate. При переносе его выбрасывает следующую ошибку:
rake aborted!
Could not find table 'dbrick'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)
Это мой файл миграции:
class CreateDbricks < ActiveRecord::Migration
def self.up
create_table :dbricks do |t|
t.text :description
t.string :video
t.string :video_html
t.string :image_id
t.string :option_id
t.boolean :choice
t.string :reach
t.integer :category_id
t.string :user_id
t.datetime :deleted_at
t.timestamps
end
end
def self.down
drop_table :dbricks
end
end
Будет очень много полной помощи, если кто-нибудь поможет мне в этом. Заранее спасибо.
2 ответа
Я бы попробовал:
rake db:schema:load
Чтобы загрузить вашу схему (к которой я верю, что она находит ошибку в вашей БД).
Если это не удастся, я вручную найду миграцию, которая создает ваш dbrick, найдет имя файла, скопирует и вставит число в имя файла, чтобы получить это:
rake db:migrate:down VERSION=123412341234 # <-- where the number is the number you pasted
Ищите ошибки. Иногда одна вещь уже существует или не существует уже и препятствует выполнению миграции полностью, и, следовательно, это может стать источником вашей ошибки. Если все прошло успешно, то восстановите его:
rake db:migrate:up VERSION=123412341234 # <-- where the number is the number you pasted
Если он не пройдет успешно, вам придется надеть шлем шахтера и запачкать руки:
rails dbconsole
Что приведет вас в вашу базу данных, и вам придется вручную удалить любую таблицу / столбец, предотвращающий миграцию. Как только это будет исправлено, выйдите и rake db:migrate:up
!
Вы перенесли свою базу данных? rake db:migrate
Если у вас есть, удалите вашу базу данных (это удаляет все данные, поэтому будьте осторожны - сделайте это, если вы не заботитесь о потере данных в вашей базе данных)
rake db:drop
Это очистит вашу базу данных и вашу схему. затем
rake db:migrate
Это перенастроит вашу схему.