SQLAlchemy(声明性)不创建数据库或表

时间:2013-03-31 07:05:52

标签: orm python-2.7 sqlalchemy

我正在尝试将postgreSQL与SQLAlchemy一起使用。我有一些问题,因为我是SQLAlchemy的新手,可能误解了文档。

当我使用SQLite跟踪文档时,我在创建数据库和我指定的类的关系方面没有任何问题。但是,当我尝试使用Postgre时,我无法生成关系或数据库,而是必须在shell中手动创建模式和表。

这就是我目前所拥有的:

postgres_url = 'postgresql+psycopg2://some_user:some_password@localhost:5432/testdb'

engine = create_engine(postgres_url)

DB_session = sessionmaker(bind=engine)
db_session = DB_session()

Base = declarative_base()

Base.metadata.create_all(bind=engine)

#-----------------------------------------------------------
#                       User Entity
#-----------------------------------------------------------


class User(Base):

    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    fname = Column(String(45))
    lname = Column(String(45))
    token = Column(String(45))

    def __init__(self, fname, lname, token):
        self.fname = fname
        self.lname = lname
        self.token = token

    def __repr__(self):
        return 'Token: %s' % self.token

当我在手动创建db之后运行上面的代码时,我得到一个relation "users" does not exist,但是,如果我手动创建架构,一切都运行正常。我希望能朝着正确的方向前进。

0 个答案:

没有答案