2017-02-13 2 views
1

Salut J'essaie de créer une table en utilisant SQLAlchemy dans Postgres, ça marche bien mais la table n'est pas créée sur mon serveur Postgres.comment créer une table dans SQLAlchemy en utilisant Postgres?

Mon fichier models.py:

import sqlalchemy 
from sqlalchemy import Column, Integer, String 
from sqlalchemy import Table 
from sqlalchemy.ext.declarative import declarative_base 

Base = declarative_base() 

class MyTable(Base): 
    __tablename__ = 'myTable' 
    time_id = Column(String(), primary_key=True) 
    customer_id = Column(String()) 
    inventory_id = Column(String()) 

    def toJSON(self): 
     json = { 
      "time_id":self.alert_id, 
      "customer_id":self.customer_id, 
      "inventory_id":self.inventory_id, 
     } 
     return json 

Mon fichier créateur:

from sqlalchemy.ext.declarative import declarative_base 
from models import MyTable 
from sqlalchemy import create_engine 

path="postgresql://postgres:[email protected]/test" 
engine = create_engine(path, echo=True) 
Base = declarative_base() 
Base.metadata.create_all(engine) 

Qu'est-ce que je fais mal?

Répondre

3

classe Base est différente pour les deux fichiers, vous devez utiliser la classe Base qui a utilisé l'héritage, donc importer votre fichier Base de modèles:

#creatorfile 
... 
from models import Base 

path="postgresql://postgres:[email protected]/test" 
engine = create_engine(path, echo=True) 
Base.metadata.create_all(engine) 

cette ligne Base = declarative_base() Retirer