SQLAlchemy创建数据库,然后更改所有者

时间:2016-09-21 13:17:50

标签: python postgresql orm sqlalchemy

我正在尝试和Sqlachemy和ORM一起尝试将原始sql转换为ORM结构。
我的问题是设置ownship

原始sql文件将如下所示:

CREATE DATABASE mydb WITH ENCODING='UTF8' OWNER otheruser;

CREATE TABLE mytable
(
    id VARCHAR NOT NULL UNIQUE,
    data VARCHAR NOT NULL,
    PRIMARY KEY (id)
);
ALTER TABLE mytable OWNER TO otheruser;

申请,我只是运行:

psql -U postgres -r raw_sql_file.sql

我的模块看起来像这样:

from sqlalchemy_utils import database_exists, create_database

class DataProvider(object):
    def __init__(self):

        engine = create_engine(
            "postgresql+psycopg2://postgres:@localhost/mydb")

        if not database_exists(engine.url):
            create_database(engine.url)

        Base.metadata.create_all(engine)
        self.session = sessionmaker(bind=engine)()



class MyTable(Base):
    __tablename__ = 'mytable'
    id = Column(String, primary_key=True)
    data = Column(String, nullable=False)

当我启动DataProvider类时,如果数据库不存在,则从头开始创建数据库。

我的问题是数据库归postgres用户所有。我找不到一个很好的方法来改变数据库和表乡镇。

我错过了什么?

0 个答案:

没有答案