51 lines
1.0 KiB
Python
51 lines
1.0 KiB
Python
from dotenv import load_dotenv
|
|
import os
|
|
from sqlalchemy_utils import database_exists, create_database, drop_database
|
|
from sqlalchemy import (
|
|
create_engine,
|
|
select,
|
|
Table,
|
|
Column,
|
|
MetaData,
|
|
Integer,
|
|
Identity,
|
|
String,
|
|
)
|
|
|
|
load_dotenv()
|
|
DATABASE_URL = os.getenv("DATABASE_URL")
|
|
|
|
engine = create_engine(
|
|
DATABASE_URL,
|
|
# isolation_level="AUTOCOMMIT",
|
|
)
|
|
|
|
if not database_exists(engine.url):
|
|
create_database(engine.url)
|
|
else:
|
|
drop_database(engine.url)
|
|
create_database(engine.url)
|
|
|
|
print(database_exists(engine.url))
|
|
|
|
metadata = MetaData()
|
|
|
|
test = Table(
|
|
"test",
|
|
metadata,
|
|
Column("id", Integer, Identity(start=1, cycle=True), primary_key=True),
|
|
Column("testString", String),
|
|
)
|
|
metadata.create_all(engine)
|
|
|
|
with engine.connect() as conn:
|
|
# conn.execution_options(isolation_level="AUTOCOMMIT")
|
|
trans = conn.begin()
|
|
|
|
insert = test.insert().values(testString="ca")
|
|
conn.execute(insert)
|
|
rows = conn.execute(select(test))
|
|
trans.commit()
|
|
for row in rows:
|
|
print(row)
|