2017-01-04 16 views
1

я пытаюсь восстановить базу данных PostgreSQL с командой Vapor:Vapor PostgreSQL Ошибка: invalidSQL («ОШИБКА: отношение » страницы «уже существует п»)

vapor run prepare --revert -y 

Я получаю это из положить :

Running mist... 
Are you sure you want to revert the database? 
y/n>yes 
Reverting Post 
Reverted Post 
Removing metadata 
Reversion complete 

В случае, если вы задаетесь вопросом, я пытался делать это несколько раз, так что Post класс получает подготовлен, но другие этого не делают.

Эта команда возвращает эти таблицы для всех моделей, кроме одного (всего четыре).

По какой-то причине таблица «страниц» не будет возвращена.

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

invalidSQL("ERROR: relation \"pages\" already exists\n") 

Вот код подготовка базы данных для модели:

extension Page: Preparation { 
    static func prepare(_ database: Database) throws { 
     try database.create("pages", closure: { post in 
      post.id() 
      post.string("content", length: 10000) 
      post.string("name") 
      post.string("link") 
     }) 
    } 

    static func revert(_ database: Database) throws { 
     try database.delete("pages") 
    } 
} 
+0

Похоже, что запись 'Page' так или иначе отсутствует в таблице' fluent', поэтому она не знает, чтобы включить эту таблицу в операцию возврата. – tobygriffin

ответ

2

мне удалось это исправить удалив старую БД:

dropdb `whoami` 

Затем создать новый:

createdb `whoami` 

Проблема решена!