|
|
"""initial
|
|
|
|
|
|
Revision ID: 3c651a0d1fe0
|
|
|
Revises:
|
|
|
Create Date: 2023-10-27 18:19:47.402501
|
|
|
|
|
|
"""
|
|
|
import random
|
|
|
import time
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
from alembic import op
|
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
|
revision = '3c651a0d1fe0'
|
|
|
down_revision = None
|
|
|
branch_labels = None
|
|
|
depends_on = None
|
|
|
|
|
|
def generate_normal_random(mean, std_dev):
|
|
|
return int(random.gauss(mean, std_dev))
|
|
|
def upgrade():
|
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
|
op.create_table('camera',
|
|
|
sa.Column('camera_type', sa.String(), nullable=False),
|
|
|
sa.Column('order_numb', sa.Integer(), nullable=True),
|
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
|
sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'),
|
|
|
nullable=False),
|
|
|
sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'),
|
|
|
nullable=False),
|
|
|
sa.PrimaryKeyConstraint('id', name=op.f('pk_camera')),
|
|
|
sa.UniqueConstraint('id', name=op.f('uq_camera_id')),
|
|
|
sa.UniqueConstraint('order_numb', name=op.f('uq_camera_order_numb'))
|
|
|
)
|
|
|
op.create_table('conveer',
|
|
|
sa.Column('wood', sa.Integer(), nullable=True),
|
|
|
sa.Column('metal', sa.Integer(), nullable=True),
|
|
|
sa.Column('glass', sa.Integer(), nullable=True),
|
|
|
sa.Column('plastic', sa.Integer(), nullable=True),
|
|
|
sa.Column('camera_id', sa.Integer(), nullable=False),
|
|
|
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
|
|
|
sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'),
|
|
|
nullable=False),
|
|
|
sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'),
|
|
|
nullable=False),
|
|
|
sa.ForeignKeyConstraint(['camera_id'], ['camera.id'], name=op.f('fk_conveer_camera_id_camera')),
|
|
|
sa.PrimaryKeyConstraint('id', name=op.f('pk_conveer')),
|
|
|
sa.UniqueConstraint('id', name=op.f('uq_conveer_id'))
|
|
|
)
|
|
|
op.execute('''INSERT INTO camera(id,order_numb, camera_type) VALUES (1,1, 'По умолчанию')''')
|
|
|
import random
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
# Устанавливаем параметры нормального распределения
|
|
|
mean_metal = 10 # Среднее значение для металла
|
|
|
std_dev_metal = 3 # Стандартное отклонение для металла
|
|
|
|
|
|
mean_glass = 5 # Среднее значение для стекла
|
|
|
std_dev_glass = 2 # Стандартное отклонение для стекла
|
|
|
|
|
|
mean_plastic = 7.5 # Среднее значение для пластика
|
|
|
std_dev_plastic = 2.5 # Стандартное отклонение для пластика
|
|
|
|
|
|
mean_wood = 15 # Среднее значение для дерева
|
|
|
std_dev_wood = 5 # Стандартное отклонение для дерева
|
|
|
|
|
|
for _ in range(0, 10):
|
|
|
random_date = datetime.now() - timedelta(days=random.randint(1, 365))
|
|
|
|
|
|
# Генерируем случайные значения, следующие нормальному распределению
|
|
|
metal = generate_normal_random(mean_metal, std_dev_metal)
|
|
|
glass = generate_normal_random(mean_glass, std_dev_glass)
|
|
|
plastic = generate_normal_random(mean_plastic, std_dev_plastic)
|
|
|
wood = generate_normal_random(mean_wood, std_dev_wood)
|
|
|
|
|
|
# Далее вы можете выполнить ваш SQL-запрос с этими случайными значениями
|
|
|
op.execute(f'''INSERT INTO conveer (metal, glass, plastic, wood, camera_id, created_at)
|
|
|
VALUES ({metal}, {glass}, {plastic}, {wood}, 1, '{random_date}');''')
|
|
|
|
|
|
|
|
|
def downgrade():
|
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
|
op.drop_table('conveer')
|
|
|
op.drop_table('camera')
|
|
|
# ### end Alembic commands ###
|