2015-12-17 4 views
0

У меня возникли проблемы с запуском любой задачи грабли для моего приложения Rails, и независимо от того, какую задачу я бегу (грабли БД: мигрируют, грабли БД: сброс и т.д.), я получаю следующее сообщение об ошибке:Rails грабли задачи ABORTING

rake aborted! 
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: pages: SELECT "pages".* FROM "pages" 

я продолжать получать эту ошибку - независимо от того, какие грабли задачи я бегу, а также, когда я пытаюсь запустить сервер:

rails s 

получает следующую ошибку

Exiting 
/Users/terencedevine/.rvm/gems/ruby-2.1.2/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in `initialize': SQLite3::SQLException: no such table: pages: SELECT "pages".* FROM "pages" (ActiveRecord::StatementInvalid) 

Все, что я нахожу в Интернете, предлагает использовать rake db:reset, но это возвращает ту же ошибку.

Один из моих недавних миграций я побежал был XXXX_create_pages.rb, который имеет следующий код:

class CreatePages < ActiveRecord::Migration 
    def change 
    create_table :pages do |t| 
     t.string :name, null: false, unique: true 
     t.string :title, null: false 
     t.text :body 

     t.timestamps null: false 
    end 
    end 
end 

Любая помощь очень ценится! Благодаря!

UPDATE

enter image description here

+0

Backtrace пожалуйста! :) – BroiSatse

+0

Не могли бы вы дать немного больше информации о 'Backtrace', пожалуйста? –

+0

Backtrace (или, скорее, должно быть) отображается непосредственно под сообщением об ошибке и содержит информацию, необходимую для поиска того, что вызывает исключение. – BroiSatse

ответ

0

Вы должны убедиться, что вы на самом деле выполнить свои миграции.

Попробуйте rake db:migrate, затем попробуйте снова запустить сервер или консоль.

+0

все задачи rake прерваны, когда я запускаю 'rake db: migrate'. Я получаю:' rake aborted! ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: нет такой таблицы: страницы: SELECT "pages". * FROM "pages" 'with the bunch more output ниже. –

+0

Попробуйте 'rake db: migrate VERSION = 0', тогда' rake db: migrate' – yez

0

Обязательно запустите rake db:create, а затем rake db:migrate, и это должно сработать.

+0

все задачи rake прерваны, когда я запускаю 'rake db: create', он либо говорит, что файлы sqlite3 созданы, либо создает их (если я удаляю их). Когда я запускаю 'rake db: migrate', я получаю ту же ошибку, что и выше:' rake aborted! ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: нет такой таблицы: страницы: SELECT "pages". * FROM "pages" ' –

0
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: pages: SELECT "pages".* FROM "pages" 

Из сообщения об ошибке, то очевидно, что pages таблица не существует в базе данных прямо сейчас. Он как-то удалился, даже если вы не удалили его сознательно.

Таким образом, вы должны создать pages таблицу снова, запустив соответствующую миграцию:

rake db:migrate

В случае, если ваша версия схемы превышено миграции XXXX_create_pages.rb переименуйте вам миграцию с наибольшей временной меткой.

Например.

Ваша страница миграции

20151130203912_create_pages.rb 

Если текущая версия схемы является

ActiveRecord::Schema.define(:version => 20151211175046) 

Тогда pages миграция должна быть 20151230203912_create_pages.rb

Я надеюсь, что это было бы полезно.