You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.9 KiB
41 lines
1.9 KiB
1 year ago
|
from datetime import datetime
|
||
|
from sqlalchemy import (MetaData, Table, Column, Integer, Numeric, String, Boolean, DateTime, ForeignKey, create_engine)
|
||
|
|
||
|
metadata = MetaData()
|
||
|
|
||
|
cookies = Table('cookies', metadata,
|
||
|
Column('cookie_id', Integer(), primary_key=True),
|
||
|
Column('cookie_name', String(50), index=True),
|
||
|
Column('cookie_recipe_url', String(255)),
|
||
|
Column('cookie_sku', String(55)),
|
||
|
Column('quantity', Integer()),
|
||
|
Column('unit_cost', Numeric(12, 2))
|
||
|
)
|
||
|
users = Table('users', metadata,
|
||
|
Column('user_id', Integer(), primary_key=True),
|
||
|
Column('customer_number', Integer(), autoincrement=True),
|
||
|
Column('username', String(15), nullable=False, unique=True),
|
||
|
Column('email_address', String(255), nullable=False),
|
||
|
Column('phone', String(20), nullable=False),
|
||
|
Column('password', String(25), nullable=False),
|
||
|
Column('created_on', DateTime(), default=datetime.now),
|
||
|
Column('updated_on', DateTime(), default=datetime.now, onupdate=datetime.now)
|
||
|
)
|
||
|
orders = Table('orders', metadata,
|
||
|
Column('order_id', Integer(), primary_key=True),
|
||
|
Column('user_id', ForeignKey('users.user_id')),
|
||
|
Column('shipped', Boolean(), default=False)
|
||
|
)
|
||
|
line_items = Table('line_items', metadata,
|
||
|
Column('line_items_id', Integer(), primary_key=True),
|
||
|
Column('order_id', ForeignKey('orders.order_id')),
|
||
|
Column('cookie_id', ForeignKey('cookies.cookie_id')),
|
||
|
Column('quantity', Integer()),
|
||
|
Column('extended_cost', Numeric(12, 2))
|
||
|
)
|
||
|
|
||
|
DB_URI = "mysql+pymysql://root:Sxzgx1209@home.rogersun.cn:3306/orm_sqlalchemy"
|
||
|
|
||
|
engine = create_engine(DB_URI, echo=True)
|
||
|
metadata.create_all(engine)
|
||
|
connection = engine.connect()
|