569 lines
40 KiB
Python
569 lines
40 KiB
Python
"""Add favorites table
|
||
|
||
Revision ID: e1ec7bb6c8ec
|
||
Revises:
|
||
Create Date: 2025-08-29 01:01:11.427346
|
||
|
||
"""
|
||
from alembic import op
|
||
import sqlalchemy as sa
|
||
from sqlalchemy.dialects import mysql
|
||
|
||
# revision identifiers, used by Alembic.
|
||
revision = 'e1ec7bb6c8ec'
|
||
down_revision = None
|
||
branch_labels = None
|
||
depends_on = None
|
||
|
||
|
||
def upgrade():
|
||
# ### commands auto generated by Alembic - please adjust! ###
|
||
op.drop_table('deviceinfo')
|
||
with op.batch_alter_table('oauth_member_bind', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_type_openid'))
|
||
|
||
op.drop_table('oauth_member_bind')
|
||
with op.batch_alter_table('food_stock_change_log', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_food_id'))
|
||
|
||
op.drop_table('food_stock_change_log')
|
||
with op.batch_alter_table('oauth_access_token', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_expired_time'))
|
||
|
||
op.drop_table('oauth_access_token')
|
||
with op.batch_alter_table('pay_order', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_member_id_status'))
|
||
batch_op.drop_index(batch_op.f('idx_order_sn'))
|
||
|
||
op.drop_table('pay_order')
|
||
op.drop_table('mendianusertwo')
|
||
with op.batch_alter_table('member_comments', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_member_id'))
|
||
|
||
op.drop_table('member_comments')
|
||
op.drop_table('food')
|
||
with op.batch_alter_table('food_cat', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_name'))
|
||
|
||
op.drop_table('food_cat')
|
||
with op.batch_alter_table('member', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_openid'))
|
||
|
||
op.drop_table('member')
|
||
with op.batch_alter_table('app_access_log', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_uid'))
|
||
|
||
op.drop_table('app_access_log')
|
||
with op.batch_alter_table('member_address', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_member_id_status'))
|
||
|
||
op.drop_table('member_address')
|
||
with op.batch_alter_table('stat_daily_site', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_date'))
|
||
|
||
op.drop_table('stat_daily_site')
|
||
with op.batch_alter_table('pay_order_callback_data', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('pay_order_id'))
|
||
|
||
op.drop_table('pay_order_callback_data')
|
||
op.drop_table('images')
|
||
with op.batch_alter_table('stat_daily_member', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_date_member_id'))
|
||
|
||
op.drop_table('stat_daily_member')
|
||
op.drop_table('runoob_tbl')
|
||
with op.batch_alter_table('food_sale_change_log', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_food_id_id'))
|
||
|
||
op.drop_table('food_sale_change_log')
|
||
op.drop_table('dongtai_list')
|
||
with op.batch_alter_table('stat_daily_food', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('date_food_id'))
|
||
|
||
op.drop_table('stat_daily_food')
|
||
op.drop_table('app_error_log')
|
||
op.drop_table('mendianuserinfo')
|
||
op.drop_table('queue_list')
|
||
op.drop_table('wx_share_history')
|
||
with op.batch_alter_table('container_orchestration_assistant', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_category'))
|
||
batch_op.drop_index(batch_op.f('idx_industry'))
|
||
batch_op.drop_index(batch_op.f('idx_profession'))
|
||
|
||
op.drop_table('container_orchestration_assistant')
|
||
with op.batch_alter_table('member_cart', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('idx_member_id'))
|
||
|
||
op.drop_table('member_cart')
|
||
with op.batch_alter_table('pay_order_item', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('id_order_id'))
|
||
batch_op.drop_index(batch_op.f('idx_food_id'))
|
||
|
||
op.drop_table('pay_order_item')
|
||
with op.batch_alter_table('user', schema=None) as batch_op:
|
||
batch_op.drop_index(batch_op.f('login_name'))
|
||
|
||
# ### end Alembic commands ###
|
||
|
||
|
||
def downgrade():
|
||
# ### commands auto generated by Alembic - please adjust! ###
|
||
with op.batch_alter_table('user', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('login_name'), ['login_name'], unique=True)
|
||
|
||
op.create_table('pay_order_item',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('pay_order_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='订单id'),
|
||
sa.Column('member_id', mysql.BIGINT(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('quantity', mysql.INTEGER(display_width=11), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='购买数量 默认1份'),
|
||
sa.Column('price', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='商品总价格,售价 * 数量'),
|
||
sa.Column('food_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='美食表id'),
|
||
sa.Column('note', mysql.TEXT(), nullable=False, comment='备注信息'),
|
||
sa.Column('status', mysql.TINYINT(display_width=1), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='状态:1:成功 0 失败'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最近一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='订单详情表',
|
||
mysql_comment='订单详情表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('pay_order_item', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_food_id'), ['food_id'], unique=False)
|
||
batch_op.create_index(batch_op.f('id_order_id'), ['pay_order_id'], unique=False)
|
||
|
||
op.create_table('member_cart',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('member_id', mysql.BIGINT(display_width=20), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('food_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='商品id'),
|
||
sa.Column('quantity', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='数量'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='购物车',
|
||
mysql_comment='购物车',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('member_cart', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_member_id'), ['member_id'], unique=False)
|
||
|
||
op.create_table('container_orchestration_assistant',
|
||
sa.Column('id', mysql.BIGINT(display_width=20), autoincrement=True, nullable=False, comment='助手ID'),
|
||
sa.Column('name', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='助手名称'),
|
||
sa.Column('description', mysql.VARCHAR(length=255), server_default=sa.text("''"), nullable=False, comment='助手描述'),
|
||
sa.Column('category', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='分类(架构设计)'),
|
||
sa.Column('industry', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='行业(技术研发)'),
|
||
sa.Column('profession', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='职业(高级工程师)'),
|
||
sa.Column('sub_category', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='子分类(容器编排)'),
|
||
sa.Column('system_prompt', mysql.TEXT(), nullable=False, comment='系统提示词(容器化需求转换规则)'),
|
||
sa.Column('status', mysql.TINYINT(display_width=1), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='状态:1-有效,0-无效'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='创建时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='Python容器编排助手表',
|
||
mysql_comment='Python容器编排助手表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('container_orchestration_assistant', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_profession'), ['profession'], unique=False)
|
||
batch_op.create_index(batch_op.f('idx_industry'), ['industry'], unique=False)
|
||
batch_op.create_index(batch_op.f('idx_category'), ['category'], unique=False)
|
||
|
||
op.create_table('wx_share_history',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('member_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('share_url', mysql.VARCHAR(length=200), server_default=sa.text("''"), nullable=False, comment='分享的页面url'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='创建时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='微信分享记录',
|
||
mysql_comment='微信分享记录',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('queue_list',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('queue_name', mysql.VARCHAR(length=30), server_default=sa.text("''"), nullable=False, comment='队列名字'),
|
||
sa.Column('data', mysql.VARCHAR(length=500), server_default=sa.text("''"), nullable=False, comment='队列数据'),
|
||
sa.Column('status', mysql.TINYINT(display_width=1), server_default=sa.text("'-1'"), autoincrement=False, nullable=False, comment='状态 -1 待处理 1 已处理'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='事件队列表',
|
||
mysql_comment='事件队列表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('mendianuserinfo',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('nickname', mysql.VARCHAR(length=20), server_default=sa.text("''"), nullable=False, comment='会员名'),
|
||
sa.Column('mobile', mysql.VARCHAR(length=20), server_default=sa.text("''"), nullable=False, comment='会员手机号码'),
|
||
sa.Column('storename', mysql.VARCHAR(length=20), server_default=sa.text("'0'"), nullable=False, comment='店铺名称'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='会员表',
|
||
mysql_comment='会员表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('app_error_log',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('referer_url', mysql.VARCHAR(length=255), server_default=sa.text("''"), nullable=False, comment='当前访问的refer'),
|
||
sa.Column('target_url', mysql.VARCHAR(length=255), server_default=sa.text("''"), nullable=False, comment='访问的url'),
|
||
sa.Column('query_params', mysql.TEXT(), nullable=False, comment='get和post参数'),
|
||
sa.Column('content', mysql.LONGTEXT(), nullable=False, comment='日志内容'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='app错误日表',
|
||
mysql_comment='app错误日表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('stat_daily_food',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('date', sa.DATE(), nullable=False),
|
||
sa.Column('food_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='菜品id'),
|
||
sa.Column('total_count', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='售卖总数量'),
|
||
sa.Column('total_pay_money', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='总售卖金额'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='书籍售卖日统计',
|
||
mysql_comment='书籍售卖日统计',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('stat_daily_food', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('date_food_id'), ['date', 'food_id'], unique=False)
|
||
|
||
op.create_table('dongtai_list',
|
||
sa.Column('listid', mysql.INTEGER(display_width=10, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('date', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('title', mysql.VARCHAR(length=40), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('imgSrc', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('avatar', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('content', mysql.VARCHAR(length=128), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('reading', mysql.VARCHAR(length=128), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('collection', mysql.VARCHAR(length=128), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('headImgSrc', mysql.VARCHAR(length=100), nullable=False),
|
||
sa.Column('author', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('dateTime', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False),
|
||
sa.Column('postId', mysql.INTEGER(display_width=10), autoincrement=False, nullable=False),
|
||
sa.PrimaryKeyConstraint('listid'),
|
||
mysql_default_charset='utf8',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('food_sale_change_log',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('food_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='商品id'),
|
||
sa.Column('quantity', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='售卖数量'),
|
||
sa.Column('price', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='售卖金额'),
|
||
sa.Column('member_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='售卖时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='商品销售情况',
|
||
mysql_comment='商品销售情况',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('food_sale_change_log', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_food_id_id'), ['food_id'], unique=False)
|
||
|
||
op.create_table('runoob_tbl',
|
||
sa.Column('runoob_id', mysql.INTEGER(display_width=10, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('runoob_title', mysql.VARCHAR(length=100), nullable=False),
|
||
sa.Column('runoob_author', mysql.VARCHAR(length=40), nullable=False),
|
||
sa.Column('submission_date', sa.DATE(), nullable=True),
|
||
sa.PrimaryKeyConstraint('runoob_id'),
|
||
mysql_default_charset='utf8',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('stat_daily_member',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('date', sa.DATE(), nullable=False, comment='日期'),
|
||
sa.Column('member_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('total_shared_count', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='当日分享总次数'),
|
||
sa.Column('total_pay_money', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='当日付款总金额'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='会员日统计',
|
||
mysql_comment='会员日统计',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('stat_daily_member', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_date_member_id'), ['date', 'member_id'], unique=False)
|
||
|
||
op.create_table('images',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('file_key', mysql.VARCHAR(length=60), server_default=sa.text("''"), nullable=False, comment='文件名'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('pay_order_callback_data',
|
||
sa.Column('id', mysql.INTEGER(display_width=11), autoincrement=True, nullable=False),
|
||
sa.Column('pay_order_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='支付订单id'),
|
||
sa.Column('pay_data', mysql.TEXT(), nullable=False, comment='支付回调信息'),
|
||
sa.Column('refund_data', mysql.TEXT(), nullable=False, comment='退款回调信息'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='创建时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('pay_order_callback_data', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('pay_order_id'), ['pay_order_id'], unique=True)
|
||
|
||
op.create_table('stat_daily_site',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('date', sa.DATE(), nullable=False, comment='日期'),
|
||
sa.Column('total_pay_money', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='当日应收总金额'),
|
||
sa.Column('total_member_count', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False, comment='会员总数'),
|
||
sa.Column('total_new_member_count', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False, comment='当日新增会员数'),
|
||
sa.Column('total_order_count', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False, comment='当日订单数'),
|
||
sa.Column('total_shared_count', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='全站日统计',
|
||
mysql_comment='全站日统计',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('stat_daily_site', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_date'), ['date'], unique=False)
|
||
|
||
op.create_table('member_address',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('member_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('nickname', mysql.VARCHAR(length=20), server_default=sa.text("''"), nullable=False, comment='收货人姓名'),
|
||
sa.Column('mobile', mysql.VARCHAR(length=11), server_default=sa.text("''"), nullable=False, comment='收货人手机号码'),
|
||
sa.Column('province_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='省id'),
|
||
sa.Column('province_str', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='省名称'),
|
||
sa.Column('city_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='城市id'),
|
||
sa.Column('city_str', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='市名称'),
|
||
sa.Column('area_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='区域id'),
|
||
sa.Column('area_str', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='区域名称'),
|
||
sa.Column('address', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='详细地址'),
|
||
sa.Column('status', mysql.TINYINT(display_width=1), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='是否有效 1:有效 0:无效'),
|
||
sa.Column('is_default', mysql.TINYINT(display_width=1), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='默认地址'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='会员收货地址',
|
||
mysql_comment='会员收货地址',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('member_address', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_member_id_status'), ['member_id', 'status'], unique=False)
|
||
|
||
op.create_table('app_access_log',
|
||
sa.Column('id', mysql.INTEGER(display_width=11), autoincrement=True, nullable=False),
|
||
sa.Column('uid', mysql.BIGINT(display_width=20), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='uid'),
|
||
sa.Column('referer_url', mysql.VARCHAR(length=255), server_default=sa.text("''"), nullable=False, comment='当前访问的refer'),
|
||
sa.Column('target_url', mysql.VARCHAR(length=255), server_default=sa.text("''"), nullable=False, comment='访问的url'),
|
||
sa.Column('query_params', mysql.TEXT(), nullable=False, comment='get和post参数'),
|
||
sa.Column('ua', mysql.VARCHAR(length=255), server_default=sa.text("''"), nullable=False, comment='访问ua'),
|
||
sa.Column('ip', mysql.VARCHAR(length=32), server_default=sa.text("''"), nullable=False, comment='访问ip'),
|
||
sa.Column('note', mysql.VARCHAR(length=1000), server_default=sa.text("''"), nullable=False, comment='json格式备注字段'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='用户访问记录表',
|
||
mysql_comment='用户访问记录表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('app_access_log', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_uid'), ['uid'], unique=False)
|
||
|
||
op.create_table('member',
|
||
sa.Column('id', mysql.INTEGER(display_width=11), autoincrement=True, nullable=False),
|
||
sa.Column('openid', mysql.VARCHAR(length=80), nullable=False, comment='微信openid'),
|
||
sa.Column('nickname', mysql.VARCHAR(length=100), nullable=True, comment='用户昵称'),
|
||
sa.Column('mobile', mysql.VARCHAR(length=11), nullable=True, comment='手机号码'),
|
||
sa.Column('sex', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='性别 1:男 2:女'),
|
||
sa.Column('avatar', mysql.VARCHAR(length=200), server_default=sa.text("''"), nullable=False, comment='头像'),
|
||
sa.Column('salt', mysql.VARCHAR(length=32), nullable=False, comment='随机加密串'),
|
||
sa.Column('reg_ip', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='注册IP'),
|
||
sa.Column('status', mysql.INTEGER(display_width=11), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='状态 1:有效 0:无效'),
|
||
sa.Column('updated_time', mysql.DATETIME(), server_default=sa.text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.DATETIME(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='创建时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='会员表',
|
||
mysql_comment='会员表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('member', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_openid'), ['openid'], unique=False)
|
||
|
||
op.create_table('food_cat',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('name', mysql.VARCHAR(length=50), server_default=sa.text("''"), nullable=False, comment='类别名称'),
|
||
sa.Column('weight', mysql.TINYINT(display_width=4), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='权重'),
|
||
sa.Column('status', mysql.TINYINT(display_width=1), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='状态 1:有效 0:无效'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='食品分类',
|
||
mysql_comment='食品分类',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('food_cat', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_name'), ['id'], unique=True)
|
||
|
||
op.create_table('food',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('cat_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='分类id'),
|
||
sa.Column('name', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='书籍名称'),
|
||
sa.Column('price', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='售卖金额'),
|
||
sa.Column('main_image', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='主图'),
|
||
sa.Column('summary', mysql.VARCHAR(length=10000), server_default=sa.text("''"), nullable=False, comment='描述'),
|
||
sa.Column('stock', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='库存量'),
|
||
sa.Column('tags', mysql.VARCHAR(length=200), server_default=sa.text("''"), nullable=False, comment='tag关键字,以","连接'),
|
||
sa.Column('status', mysql.TINYINT(display_width=1), server_default=sa.text("'1'"), autoincrement=False, nullable=False, comment='状态 1:有效 0:无效'),
|
||
sa.Column('month_count', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='月销售数量'),
|
||
sa.Column('total_count', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='总销售量'),
|
||
sa.Column('view_count', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='总浏览次数'),
|
||
sa.Column('comment_count', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='总评论量'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='食品表',
|
||
mysql_comment='食品表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('member_comments',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('member_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('food_ids', mysql.VARCHAR(length=200), server_default=sa.text("''"), nullable=False, comment='商品ids'),
|
||
sa.Column('pay_order_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='订单id'),
|
||
sa.Column('score', mysql.TINYINT(display_width=4), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='评分'),
|
||
sa.Column('content', mysql.VARCHAR(length=200), server_default=sa.text("''"), nullable=False, comment='评论内容'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='会员评论表',
|
||
mysql_comment='会员评论表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('member_comments', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_member_id'), ['member_id'], unique=False)
|
||
|
||
op.create_table('mendianusertwo',
|
||
sa.Column('id', mysql.INTEGER(display_width=100), server_default=sa.text("'0'"), autoincrement=False, nullable=False),
|
||
sa.Column('name', mysql.VARCHAR(length=100), nullable=False),
|
||
sa.Column('phone', mysql.VARCHAR(length=100), nullable=False),
|
||
sa.Column('storename', mysql.VARCHAR(length=100), nullable=False),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
op.create_table('pay_order',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('order_sn', mysql.VARCHAR(length=40), server_default=sa.text("''"), nullable=False, comment='随机订单号'),
|
||
sa.Column('member_id', mysql.BIGINT(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('total_price', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='订单应付金额'),
|
||
sa.Column('yun_price', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='运费金额'),
|
||
sa.Column('pay_price', mysql.DECIMAL(precision=10, scale=2), server_default=sa.text("'0.00'"), nullable=False, comment='订单实付金额'),
|
||
sa.Column('pay_sn', mysql.VARCHAR(length=128), server_default=sa.text("''"), nullable=False, comment='第三方流水号'),
|
||
sa.Column('prepay_id', mysql.VARCHAR(length=128), server_default=sa.text("''"), nullable=False, comment='第三方预付id'),
|
||
sa.Column('note', mysql.TEXT(), nullable=False, comment='备注信息'),
|
||
sa.Column('status', mysql.TINYINT(display_width=4), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='1:支付完成 0 无效 -1 申请退款 -2 退款中 -9 退款成功 -8 待支付 -7 完成支付待确认'),
|
||
sa.Column('express_status', mysql.TINYINT(display_width=4), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='快递状态,-8 待支付 -7 已付款待发货 1:确认收货 0:失败'),
|
||
sa.Column('express_address_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='快递地址id'),
|
||
sa.Column('express_info', mysql.VARCHAR(length=1000), server_default=sa.text("''"), nullable=False, comment='快递信息'),
|
||
sa.Column('comment_status', mysql.TINYINT(display_width=1), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='评论状态'),
|
||
sa.Column('pay_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='付款到账时间'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最近一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='在线购买订单表',
|
||
mysql_comment='在线购买订单表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('pay_order', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_order_sn'), ['order_sn'], unique=True)
|
||
batch_op.create_index(batch_op.f('idx_member_id_status'), ['member_id', 'status'], unique=False)
|
||
|
||
op.create_table('oauth_access_token',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('access_token', mysql.VARCHAR(length=600), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('expired_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='过期时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='微信的access_token 用户调用其他接口的',
|
||
mysql_comment='微信的access_token 用户调用其他接口的',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('oauth_access_token', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_expired_time'), ['expired_time'], unique=False)
|
||
|
||
op.create_table('food_stock_change_log',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('food_id', mysql.INTEGER(display_width=11), autoincrement=False, nullable=False, comment='商品id'),
|
||
sa.Column('unit', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='变更多少'),
|
||
sa.Column('total_stock', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='变更之后总量'),
|
||
sa.Column('note', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='备注字段'),
|
||
sa.Column('created_time', mysql.DATETIME(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='数据库存变更表',
|
||
mysql_comment='数据库存变更表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('food_stock_change_log', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_food_id'), ['food_id'], unique=False)
|
||
|
||
op.create_table('oauth_member_bind',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('member_id', mysql.INTEGER(display_width=11), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='会员id'),
|
||
sa.Column('client_type', mysql.VARCHAR(length=20), server_default=sa.text("''"), nullable=False, comment='客户端来源类型。qq,weibo,weixin'),
|
||
sa.Column('type', mysql.TINYINT(display_width=3), server_default=sa.text("'0'"), autoincrement=False, nullable=False, comment='类型 type 1:wechat '),
|
||
sa.Column('openid', mysql.VARCHAR(length=80), server_default=sa.text("''"), nullable=False, comment='第三方id'),
|
||
sa.Column('unionid', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False),
|
||
sa.Column('extra', mysql.TEXT(), nullable=False, comment='额外字段'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='第三方登录绑定关系',
|
||
mysql_comment='第三方登录绑定关系',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
with op.batch_alter_table('oauth_member_bind', schema=None) as batch_op:
|
||
batch_op.create_index(batch_op.f('idx_type_openid'), ['type', 'openid'], unique=False)
|
||
|
||
op.create_table('deviceinfo',
|
||
sa.Column('id', mysql.INTEGER(display_width=11, unsigned=True), autoincrement=True, nullable=False),
|
||
sa.Column('nickname', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='会员名'),
|
||
sa.Column('jiguang', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='极光id'),
|
||
sa.Column('version', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='版本号'),
|
||
sa.Column('xiaoqu', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='小区'),
|
||
sa.Column('louhao', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='楼号'),
|
||
sa.Column('danyuan', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='单元号'),
|
||
sa.Column('jingdu', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='经度'),
|
||
sa.Column('weidu', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='纬度'),
|
||
sa.Column('snnum', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='sn号'),
|
||
sa.Column('mobile', mysql.VARCHAR(length=11), server_default=sa.text("''"), nullable=False, comment='会员手机号码'),
|
||
sa.Column('reg_ip', mysql.VARCHAR(length=100), server_default=sa.text("''"), nullable=False, comment='注册ip'),
|
||
sa.Column('updated_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='最后一次更新时间'),
|
||
sa.Column('created_time', mysql.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False, comment='插入时间'),
|
||
sa.PrimaryKeyConstraint('id'),
|
||
comment='设备注册表',
|
||
mysql_comment='设备注册表',
|
||
mysql_default_charset='utf8mb4',
|
||
mysql_engine='InnoDB'
|
||
)
|
||
# ### end Alembic commands ###
|