Initial commit
This commit is contained in:
commit
351d98c523
36 changed files with 1836 additions and 0 deletions
1
migrations/README
Normal file
1
migrations/README
Normal file
|
|
@ -0,0 +1 @@
|
|||
Generic single-database configuration.
|
||||
70
migrations/env.py
Normal file
70
migrations/env.py
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
from __future__ import with_statement
|
||||
from alembic import context
|
||||
from sqlalchemy import engine_from_config, pool
|
||||
from logging.config import dictConfig
|
||||
|
||||
import yaml
|
||||
from pyjeeves.models.jvsmodels import Base
|
||||
|
||||
|
||||
# Read the config file
|
||||
with open("config.yml", 'r') as ymlfile:
|
||||
cfg = yaml.load(ymlfile)
|
||||
|
||||
# Interpret the config file for Python logging.
|
||||
# This line sets up loggers basically.
|
||||
dictConfig(cfg.get('logging'))
|
||||
|
||||
# add your model's MetaData object here
|
||||
# for 'autogenerate' support
|
||||
# from myapp import mymodel
|
||||
# target_metadata = mymodel.Base.metadata
|
||||
target_metadata = Base.metadata
|
||||
|
||||
|
||||
def run_migrations_offline():
|
||||
"""Run migrations in 'offline' mode.
|
||||
|
||||
This configures the context with just a URL
|
||||
and not an Engine, though an Engine is acceptable
|
||||
here as well. By skipping the Engine creation
|
||||
we don't even need a DBAPI to be available.
|
||||
|
||||
Calls to context.execute() here emit the given string to the
|
||||
script output.
|
||||
|
||||
"""
|
||||
url = cfg.get('alembic', {}).get("sqlalchemy.url")
|
||||
context.configure(
|
||||
url=url, target_metadata=target_metadata, literal_binds=True)
|
||||
|
||||
with context.begin_transaction():
|
||||
context.run_migrations()
|
||||
|
||||
|
||||
def run_migrations_online():
|
||||
"""Run migrations in 'online' mode.
|
||||
|
||||
In this scenario we need to create an Engine
|
||||
and associate a connection with the context.
|
||||
|
||||
"""
|
||||
connectable = engine_from_config(
|
||||
cfg.get('alembic', {}),
|
||||
prefix='sqlalchemy.',
|
||||
poolclass=pool.NullPool)
|
||||
|
||||
with connectable.connect() as connection:
|
||||
context.configure(
|
||||
connection=connection,
|
||||
target_metadata=target_metadata
|
||||
)
|
||||
|
||||
with context.begin_transaction():
|
||||
context.run_migrations()
|
||||
|
||||
|
||||
if context.is_offline_mode():
|
||||
run_migrations_offline()
|
||||
else:
|
||||
run_migrations_online()
|
||||
24
migrations/script.py.mako
Normal file
24
migrations/script.py.mako
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
"""${message}
|
||||
|
||||
Revision ID: ${up_revision}
|
||||
Revises: ${down_revision | comma,n}
|
||||
Create Date: ${create_date}
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
${imports if imports else ""}
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = ${repr(up_revision)}
|
||||
down_revision = ${repr(down_revision)}
|
||||
branch_labels = ${repr(branch_labels)}
|
||||
depends_on = ${repr(depends_on)}
|
||||
|
||||
|
||||
def upgrade():
|
||||
${upgrades if upgrades else "pass"}
|
||||
|
||||
|
||||
def downgrade():
|
||||
${downgrades if downgrades else "pass"}
|
||||
145
migrations/versions/18b08d122636_initial_creation_of_db.py
Normal file
145
migrations/versions/18b08d122636_initial_creation_of_db.py
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
"""Initial creation of DB
|
||||
|
||||
Revision ID: 18b08d122636
|
||||
Revises:
|
||||
Create Date: 2017-10-17 11:06:14.745786
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '18b08d122636'
|
||||
down_revision = None
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.create_table(
|
||||
'jvs_articles',
|
||||
sa.Column('ArtNr', sa.String(length=16), nullable=False),
|
||||
sa.Column('ForetagKod', sa.SmallInteger(), nullable=False),
|
||||
sa.Column('ArtBeskr', sa.String(length=128), nullable=True),
|
||||
sa.Column('ArtBeskr2', sa.String(length=256), nullable=True),
|
||||
sa.Column('ArtBeskrSpec', sa.String(length=128), nullable=True),
|
||||
sa.Column('ArtProdKonto', sa.String(length=8), nullable=True),
|
||||
sa.Column('ArtProdKontoBeskr', sa.String(length=64), nullable=True),
|
||||
sa.Column('VaruGruppKod', sa.String(length=8), nullable=True),
|
||||
sa.Column('VaruGruppBeskr', sa.String(length=64), nullable=True),
|
||||
sa.Column('ArtProdKlass', sa.String(length=8), nullable=True),
|
||||
sa.Column('ArtProdklBeskr', sa.String(length=64), nullable=True),
|
||||
sa.Column('ArtKod', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('ArtTypBeskr', sa.String(length=64), nullable=True),
|
||||
sa.Column('LagTyp', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('EnhetsKod', sa.String(length=8), nullable=True),
|
||||
sa.Column('LevNr', sa.String(length=16), nullable=True),
|
||||
sa.Column('ItemStatusCode', sa.Integer(), nullable=True),
|
||||
sa.Column('LagSaldoArtikel', sa.Numeric(precision=15, scale=6), nullable=True),
|
||||
sa.Column('RowCreatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowCreatedBy', sa.String(length=16), nullable=True),
|
||||
sa.Column('RowUpdatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowUpdatedBy', sa.String(length=16), nullable=True),
|
||||
sa.PrimaryKeyConstraint('ArtNr', 'ForetagKod', name='articles_primary_key')
|
||||
)
|
||||
op.create_table(
|
||||
'jvs_customers',
|
||||
sa.Column('FtgNr', sa.String(length=16), nullable=False),
|
||||
sa.Column('ForetagKod', sa.SmallInteger(), nullable=False),
|
||||
sa.Column('BetKod', sa.String(length=8), nullable=True),
|
||||
sa.Column('kundbetalarenr', sa.String(length=16), nullable=True),
|
||||
sa.Column('RowCreatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowCreatedBy', sa.String(length=16), nullable=True),
|
||||
sa.Column('RowUpdatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowUpdatedBy', sa.String(length=16), nullable=True),
|
||||
sa.Column('Saljare', sa.String(length=32), nullable=True),
|
||||
sa.Column('SaljareNamn', sa.String(length=64), nullable=True),
|
||||
sa.Column('KundKategoriKod', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('KundKatBeskr', sa.String(length=64), nullable=True),
|
||||
sa.Column('OrgNr', sa.String(length=32), nullable=True),
|
||||
sa.Column('FtgNamn', sa.String(length=64), nullable=True),
|
||||
sa.Column('FtgPostAdr1', sa.String(length=64), nullable=True),
|
||||
sa.Column('FtgPostAdr2', sa.String(length=64), nullable=True),
|
||||
sa.Column('FtgPostAdr3', sa.String(length=64), nullable=True),
|
||||
sa.Column('FtgPostadr4', sa.String(length=64), nullable=True),
|
||||
sa.Column('FtgPostadr5', sa.String(length=128), nullable=True),
|
||||
sa.Column('FtgPostnr', sa.String(length=16), nullable=True),
|
||||
sa.Column('LandsKod', sa.String(length=16), nullable=True),
|
||||
sa.Column('FtgPostLevAdr3', sa.String(length=64), nullable=True),
|
||||
sa.Column('FtgLevPostNr', sa.String(length=16), nullable=True),
|
||||
sa.PrimaryKeyConstraint('FtgNr', 'ForetagKod', name='customers_primary_key')
|
||||
)
|
||||
op.create_table(
|
||||
'jvs_invoice_rows',
|
||||
sa.Column('FaktNr', sa.BigInteger(), nullable=False),
|
||||
sa.Column('FaktRadnr', sa.Integer(), nullable=False),
|
||||
sa.Column('ForetagKod', sa.SmallInteger(), nullable=False),
|
||||
sa.Column('FtgNr', sa.String(length=16), nullable=True),
|
||||
sa.Column('OrderNr', sa.BigInteger(), nullable=True),
|
||||
sa.Column('OrdTyp', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('Saljare', sa.String(length=16), nullable=True),
|
||||
sa.Column('KundKategoriKod', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('ArtNr', sa.String(length=16), nullable=True),
|
||||
sa.Column('EnhetsKod', sa.String(length=8), nullable=True),
|
||||
sa.Column('VaruGruppKod', sa.String(length=8), nullable=True),
|
||||
sa.Column('Redovisnar', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('Period', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('FaktDat', sa.DateTime(), nullable=True),
|
||||
sa.Column('FaktTB', sa.Numeric(precision=19, scale=4), nullable=True),
|
||||
sa.Column('FaktTG', sa.Numeric(precision=8, scale=3), nullable=True),
|
||||
sa.Column('FaktLevAnt', sa.Numeric(precision=15, scale=6), nullable=True),
|
||||
sa.Column('FaktLevAntAltEnh', sa.Numeric(precision=15, scale=6), nullable=True),
|
||||
sa.Column('FPris', sa.Numeric(precision=19, scale=4), nullable=True),
|
||||
sa.Column('FaktRadSumma', sa.Numeric(precision=19, scale=4), nullable=True),
|
||||
sa.Column('ValKod', sa.String(length=3), nullable=True),
|
||||
sa.Column('ValKurs', sa.Numeric(precision=22, scale=14), nullable=True),
|
||||
sa.Column('RowCreatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowUpdatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowUpdatedBy', sa.String(length=16), nullable=True),
|
||||
sa.ForeignKeyConstraint(['FtgNr'], ['jvs_customers.FtgNr'], ),
|
||||
sa.PrimaryKeyConstraint(
|
||||
'FaktNr', 'FaktRadnr', 'ForetagKod', name='invoice_rows_primary_key')
|
||||
)
|
||||
op.create_table(
|
||||
'jvs_order_rows',
|
||||
sa.Column('OrderNr', sa.BigInteger(), nullable=False),
|
||||
sa.Column('OrdRadnr', sa.Integer(), nullable=False),
|
||||
sa.Column('OrdRadNrStrPos', sa.Integer(), nullable=False),
|
||||
sa.Column('OrdRestNr', sa.SmallInteger(), nullable=False),
|
||||
sa.Column('ForetagKod', sa.SmallInteger(), nullable=False),
|
||||
sa.Column('ArtNr', sa.String(length=16), nullable=True),
|
||||
sa.Column('FtgNr', sa.String(length=16), nullable=True),
|
||||
sa.Column('vb_pris', sa.Numeric(precision=19, scale=4), nullable=True),
|
||||
sa.Column('OrdAntal', sa.Numeric(precision=15, scale=6), nullable=True),
|
||||
sa.Column('OrdAntalAltEnh', sa.Numeric(precision=15, scale=6), nullable=True),
|
||||
sa.Column('AltEnhetKod', sa.String(length=16), nullable=True),
|
||||
sa.Column('OrdLevAntal', sa.Numeric(precision=15, scale=6), nullable=True),
|
||||
sa.Column('OrdLevAntalAltEnh', sa.Numeric(precision=15, scale=6), nullable=True),
|
||||
sa.Column('FaktNr', sa.BigInteger(), nullable=True),
|
||||
sa.Column('OrdDatum', sa.DateTime(), nullable=True),
|
||||
sa.Column('OrdBerLevDat', sa.DateTime(), nullable=True),
|
||||
sa.Column('OrdBerednDat', sa.DateTime(), nullable=True),
|
||||
sa.Column('OrdLevDat', sa.DateTime(), nullable=True),
|
||||
sa.Column('Saljare', sa.String(length=32), nullable=True),
|
||||
sa.Column('SaljareNamn', sa.String(length=64), nullable=True),
|
||||
sa.Column('OrdRadSt', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('OrdRStatBeskr', sa.String(length=64), nullable=True),
|
||||
sa.Column('OrdTyp', sa.SmallInteger(), nullable=True),
|
||||
sa.Column('OrdTypBeskr', sa.String(length=64), nullable=True),
|
||||
sa.Column('RowCreatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowCreatedBy', sa.String(length=16), nullable=True),
|
||||
sa.Column('RowUpdatedDt', sa.DateTime(), nullable=True),
|
||||
sa.Column('RowUpdatedBy', sa.String(length=16), nullable=True),
|
||||
sa.ForeignKeyConstraint(['FtgNr'], ['jvs_customers.FtgNr'], ),
|
||||
sa.PrimaryKeyConstraint(
|
||||
'OrderNr', 'OrdRadnr', 'OrdRadNrStrPos',
|
||||
'OrdRestNr', 'ForetagKod', name='order_rows_primary_key')
|
||||
)
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_table('jvs_order_rows')
|
||||
op.drop_table('jvs_invoice_rows')
|
||||
op.drop_table('jvs_customers')
|
||||
op.drop_table('jvs_articles')
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
"""Add CustomerClasses to Customers
|
||||
|
||||
Revision ID: 65b6accf25bd
|
||||
Revises: 18b08d122636
|
||||
Create Date: 2017-10-17 13:48:46.424978
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '65b6accf25bd'
|
||||
down_revision = '18b08d122636'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.add_column(
|
||||
'jvs_customers', sa.Column('KundKlassBeskr', sa.String(length=64), nullable=True))
|
||||
op.add_column(
|
||||
'jvs_customers', sa.Column('Kundklass', sa.String(length=16), nullable=True))
|
||||
|
||||
|
||||
def downgrade():
|
||||
op.drop_column('jvs_customers', 'Kundklass')
|
||||
op.drop_column('jvs_customers', 'KundKlassBeskr')
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
"""Support 'disabled' flag for Customers
|
||||
|
||||
Revision ID: 6b35aaafded7
|
||||
Revises: 65b6accf25bd
|
||||
Create Date: 2017-10-17 15:23:48.164464
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '6b35aaafded7'
|
||||
down_revision = '65b6accf25bd'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.add_column('jvs_customers', sa.Column('MakDateTime', sa.DateTime(), nullable=True))
|
||||
op.add_column('jvs_customers', sa.Column('Makulerad', sa.Boolean(), nullable=True))
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_column('jvs_customers', 'Makulerad')
|
||||
op.drop_column('jvs_customers', 'MakDateTime')
|
||||
# ### end Alembic commands ###
|
||||
Loading…
Add table
Add a link
Reference in a new issue