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

Это перенастроит вашу схему.

Другие вопросы по тегам