-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackup.py
More file actions
115 lines (106 loc) · 6.21 KB
/
Copy pathbackup.py
File metadata and controls
115 lines (106 loc) · 6.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
"""create_functional_tables
Revision ID: cc7d724c7dd8
Revises: ffdc0a98111c
Create Date: 2024-07-22 11:49:35.263736
"""
from alembic import op
import sqlalchemy as sa
import os
environment = os.getenv("FLASK_ENV")
SCHEMA = os.environ.get("SCHEMA")
# revision identifiers, used by Alembic.
revision = 'cc7d724c7dd8'
down_revision = 'ffdc0a98111c'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('articles',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('title', sa.String(length=200), nullable=False),
sa.Column('body', sa.String(length=5000), nullable=False),
sa.Column('ownerId', sa.Integer(), nullable=False),
sa.Column('articleImage', sa.String(), nullable=False),
sa.Column('time_created', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.Column('time_updated', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.ForeignKeyConstraint(['ownerId'], ['users.id'], ),
sa.PrimaryKeyConstraint('id')
)
if environment == "production":
op.execute(f"ALTER TABLE articles SET SCHEMA {SCHEMA};")
op.create_table('products',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('name', sa.String(length=200), nullable=False),
sa.Column('description', sa.String(length=2000), nullable=False),
sa.Column('price', sa.Float(), nullable=False),
sa.Column('isTraditional', sa.Boolean(), nullable=False),
sa.Column('ownerId', sa.Integer(), nullable=False),
sa.Column('isPurchased', sa.Boolean(), nullable=False),
sa.Column('time_created', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.Column('time_updated', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.ForeignKeyConstraint(['ownerId'], ['users.id'], ),
sa.PrimaryKeyConstraint('id')
)
if environment == "production":
op.execute(f"ALTER TABLE products SET SCHEMA {SCHEMA};")
op.create_table('transactions',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('ownerId', sa.Integer(), nullable=False),
sa.Column('status', sa.Enum('pending', 'processing', 'delivery', 'delivered', name='packagestatus'), nullable=False),
sa.Column('time_created', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.Column('time_updated', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.ForeignKeyConstraint(['ownerId'], ['users.id'], ),
sa.PrimaryKeyConstraint('id')
)
if environment == "production":
op.execute(f"ALTER TABLE transactions SET SCHEMA {SCHEMA};")
op.create_table('article_tags',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('tag', sa.Enum('nintendo', 'nsixfour', 'switch', 'game_boy', 'game_boy_color', 'game_boy_advanced', 'pokemon', 'nintendo_ds', 'gamecube', 'xbox', 'xbox_360', 'xbox_one', 'xbox_series_x', 'playstation', 'playstation_2', 'playstation_3', 'playstation_4', 'playstation_5', 'retro', 'coop', 'multiplayer', 'pvp', 'pve', 'singleplayer', 'hasbro', 'fantasy', 'medieval', 'ww1', 'video_game_theme', 'tcg', 'modern_warfare', 'classic', 'civilization', 'acw', 'bluffing', 'medical', 'rage', 'economy', 'party', 'noire', 'mafia', 'rp', 'racing', 'travel', 'pirates', 'military', 'book', 'farming', name='tags'), nullable=False),
sa.Column('articleId', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['articleId'], ['articles.id'], ),
sa.PrimaryKeyConstraint('id')
)
if environment == "production":
op.execute(f"ALTER TABLE article_tags SET SCHEMA {SCHEMA};")
op.create_table('product_images',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('image_url', sa.String(), nullable=False),
sa.Column('productId', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['productId'], ['products.id'], ),
sa.PrimaryKeyConstraint('id')
)
if environment == "production":
op.execute(f"ALTER TABLE 'product_images SET SCHEMA {SCHEMA};")
op.create_table('product_tags',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('tag', sa.Enum('nintendo', 'nsixfour', 'switch', 'game_boy', 'game_boy_color', 'game_boy_advanced', 'pokemon', 'nintendo_ds', 'gamecube', 'xbox', 'xbox_360', 'xbox_one', 'xbox_series_x', 'playstation', 'playstation_2', 'playstation_3', 'playstation_4', 'playstation_5', 'retro', 'coop', 'multiplayer', 'pvp', 'pve', 'singleplayer', 'hasbro', 'fantasy', 'medieval', 'ww1', 'video_game_theme', 'tcg', 'modern_warfare', 'classic', 'civilization', 'acw', 'bluffing', 'medical', 'rage', 'economy', 'party', 'noire', 'mafia', 'rp', 'racing', 'travel', 'pirates', 'military', 'book', 'farming', name='tags'), nullable=False),
sa.Column('productId', sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(['productId'], ['products.id'], ),
sa.PrimaryKeyConstraint('id')
)
if environment == "production":
op.execute(f"ALTER TABLE product_tags SET SCHEMA {SCHEMA};")
op.create_table('transaction_details',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('productId', sa.Integer(), nullable=False),
sa.Column('transactionId', sa.Integer(), nullable=False),
sa.Column('time_created', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.Column('time_updated', sa.DateTime(timezone=True), server_default=sa.text('(CURRENT_TIMESTAMP)'), nullable=True),
sa.ForeignKeyConstraint(['productId'], ['products.id'], ),
sa.ForeignKeyConstraint(['transactionId'], ['transactions.id'], ),
sa.PrimaryKeyConstraint('id')
)
if environment == "production":
op.execute(f"ALTER TABLE transaction_details SET SCHEMA {SCHEMA};")
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('transaction_details')
op.drop_table('product_tags')
op.drop_table('product_images')
op.drop_table('article_tags')
op.drop_table('transactions')
op.drop_table('products')
op.drop_table('articles')
# ### end Alembic commands ###