2017-01-04 2 views
1

Je suis en train de revenir une base de données PostgreSQL avec la commande de vapeur:vapeur Erreur PostgreSQL: invalidSQL ("ERREUR: relation " pages "existe déjà n")

vapor run prepare --revert -y 

Je reçois ce eteint :

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

si vous vous demandez, je l'ai essayé de faire ce à plusieurs reprises, de sorte que la classe Post se prépare, mais les autres ne le font pas.

Cette commande rétablit les tables pour tous les modèles, sauf un (il y en a quatre au total).

Pour une raison quelconque, le tableau 'pages' ne reviendra pas.

Et quand je tente de lancer l'application après avoir restauré la base de données, je reçois cette erreur:

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

Voici le code de préparation de base de données pour le modèle:

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

Il semble que l'enregistrement 'Page' soit en quelque sorte absent de la table' fluent', donc il ne sait pas inclure cette table dans l'opération de retour. – tobygriffin

Répondre

2

J'ai réussi à résoudre ce problème en supprimant l'ancien DB:

dropdb `whoami` 

puis en créant un nouveau:

createdb `whoami` 

Problème résolu!