Skip to content
Snippets Groups Projects
Commit 7245cc37 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

BREAKING CHANGE: use float types instead of strings on DB

**REQUIRES DROPPING TABLES & SEQUENCES ON DB**
parent a540348a
Branches
Tags
No related merge requests found
...@@ -15,21 +15,18 @@ base_schema: Any = declarative_base() ...@@ -15,21 +15,18 @@ base_schema: Any = declarative_base()
class BudgetEntry(base_schema): class BudgetEntry(base_schema):
__tablename__ = 'budgets' __tablename__ = 'budgets'
id = sa.Column(sa.Integer, sa.Sequence(
'budgetentry_seq_id_seq'), nullable=False)
nren = sa.Column(sa.String(128), primary_key=True) nren = sa.Column(sa.String(128), primary_key=True)
budget = sa.Column(sa.String(128))
year = sa.Column(sa.Integer, primary_key=True) year = sa.Column(sa.Integer, primary_key=True)
budget = sa.Column(sa.Numeric(asdecimal=False), nullable=False)
class FundingSource(base_schema): class FundingSource(base_schema):
__tablename__ = 'funding_source' __tablename__ = 'funding_source'
id = sa.Column(sa.Integer, sa.Sequence(
'fundingentry_seq_id_seq'), nullable=False)
nren = sa.Column(sa.String(128), primary_key=True) nren = sa.Column(sa.String(128), primary_key=True)
year = sa.Column(sa.Integer, primary_key=True) year = sa.Column(sa.Integer, primary_key=True)
client_institutions = sa.Column(sa.String(128)) client_institutions = sa.Column(
european_funding = sa.Column(sa.String(128)) sa.Numeric(asdecimal=False), nullable=False)
gov_public_bodies = sa.Column(sa.String(128)) european_funding = sa.Column(sa.Numeric(asdecimal=False), nullable=False)
commercial = sa.Column(sa.String(128)) gov_public_bodies = sa.Column(sa.Numeric(asdecimal=False), nullable=False)
other = sa.Column(sa.String(128)) commercial = sa.Column(sa.Numeric(asdecimal=False), nullable=False)
other = sa.Column(sa.Numeric(asdecimal=False), nullable=False)
"""create funding source schema
Revision ID: 833c99d745d7
Revises: cbcd21fcc151
Create Date: 2023-03-07 23:47:30.157499
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '833c99d745d7'
down_revision = 'cbcd21fcc151'
branch_labels = None
depends_on = None
funding_id_seq = sa.Sequence('fundingentry_seq_id_seq')
def upgrade():
op.execute(sa.schema.CreateSequence(funding_id_seq)) # create the sequence
op.create_table(
'funding_source',
sa.Column('id', sa.Integer, funding_id_seq, nullable=False,
server_default=funding_id_seq.next_value()),
sa.Column('nren', sa.String(length=128), nullable=False),
sa.Column('year', sa.Integer, nullable=False),
sa.Column('client_institutions', sa.String(length=128)),
sa.Column('european_funding', sa.String(length=128)),
sa.Column('gov_public_bodies', sa.String(length=128)),
sa.Column('commercial', sa.String(length=128)),
sa.Column('other', sa.String(length=128)),
sa.PrimaryKeyConstraint('nren', 'year')
)
def downgrade():
op.execute(
sa.schema.DropSequence(sa.Sequence('fundingentry_seq_id_seq')))
op.drop_table('funding_source')
"""Initial DB with proper types
Revision ID: b70ada054046
Revises:
Create Date: 2023-03-27 17:48:46.164991
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'b70ada054046'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
op.create_table(
'budgets',
sa.Column('nren', sa.String(length=128), nullable=False),
sa.Column('year', sa.Integer(), nullable=False),
sa.Column('budget', sa.Numeric(asdecimal=False), nullable=False),
sa.PrimaryKeyConstraint('nren', 'year')
)
op.create_table(
'funding_source',
sa.Column('nren', sa.String(length=128), nullable=False),
sa.Column('year', sa.Integer(), nullable=False),
sa.Column('client_institutions', sa.Numeric(
asdecimal=False), nullable=False),
sa.Column('european_funding', sa.Numeric(
asdecimal=False), nullable=False),
sa.Column('gov_public_bodies', sa.Numeric(
asdecimal=False), nullable=False),
sa.Column('commercial', sa.Numeric(asdecimal=False), nullable=False),
sa.Column('other', sa.Numeric(asdecimal=False), nullable=False),
sa.PrimaryKeyConstraint('nren', 'year')
)
def downgrade():
op.drop_table('funding_source')
op.drop_table('budgets')
"""Initial DB
Revision ID: cbcd21fcc151
Revises:
Create Date: 2023-02-07 15:56:22.086064
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'cbcd21fcc151'
down_revision = None
branch_labels = None
depends_on = None
# represents the sequence
budget_id_seq = sa.Sequence('budgetentry_seq_id_seq')
def upgrade():
op.execute(sa.schema.CreateSequence(budget_id_seq)) # create the sequence
op.create_table(
'budgets',
sa.Column('id', sa.Integer, budget_id_seq, nullable=False,
server_default=budget_id_seq.next_value()),
sa.Column('nren', sa.String(length=128), nullable=False),
sa.Column('budget', sa.String(length=128), nullable=True),
sa.Column('year', sa.Integer, nullable=False),
sa.PrimaryKeyConstraint('nren', 'year')
)
def downgrade():
op.execute(
sa.schema.DropSequence(sa.Sequence('budgetentry_seq_id_seq')))
op.drop_table('budgets')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment