User
テーブルを作成するには、drop_all
を使用してから、create_all
メソッドを使用する必要があります。ただし、これら2つの関数は、データベース全体を再起動します。データベース内の既存のテーブルを消去(または削除)せずにUser
テーブルを作成する方法があるのだろうか?
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
name = sqlalchemy.Column(sqlalchemy.String)
def __init__(self, code=None, *args, **kwargs):
self.name = name
url = 'postgresql+psycopg2://user:[email protected]/my_db'
engine = sqlalchemy.create_engine(url)
session = sqlalchemy.orm.scoped_session(sqlalchemy.orm.sessionmaker())
session.configure(bind=engine, autoflush=False, expire_on_commit=False)
Base.metadata.drop_all(engine)
Base.metadata.create_all(engine)
次のことができます 個々のテーブルを作成/削除 :
User.__table__.drop(engine)
User.__table__.create(engine)