Skip to content
Snippets Groups Projects
Commit 6ccb6b99 authored by Remco Tukker's avatar Remco Tukker
Browse files

use int instead of bigint for the id column to make sqlite autoincrement work

parent dd96c4d7
Branches
Tags
1 merge request!1normalization of nrens including datamigration
...@@ -25,13 +25,13 @@ base_schema: Any = declarative_base(metadata=metadata_obj) ...@@ -25,13 +25,13 @@ base_schema: Any = declarative_base(metadata=metadata_obj)
class NREN(base_schema): class NREN(base_schema):
__tablename__ = 'nrens' __tablename__ = 'nrens'
id = sa.Column(sa.BigInteger, primary_key=True) id = sa.Column(sa.Integer, primary_key=True)
name = sa.Column(sa.String(128), nullable=False) name = sa.Column(sa.String(128), nullable=False)
class BudgetEntry(base_schema): class BudgetEntry(base_schema):
__tablename__ = 'budgets' __tablename__ = 'budgets'
nren_id = sa.Column(sa.BigInteger, sa.schema.ForeignKey(NREN.id), primary_key=True) nren_id = sa.Column(sa.Integer, sa.schema.ForeignKey(NREN.id), primary_key=True)
nren = relationship(NREN) nren = relationship(NREN)
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) budget = sa.Column(sa.Numeric(asdecimal=False), nullable=False)
...@@ -39,7 +39,7 @@ class BudgetEntry(base_schema): ...@@ -39,7 +39,7 @@ class BudgetEntry(base_schema):
class FundingSource(base_schema): class FundingSource(base_schema):
__tablename__ = 'funding_source' __tablename__ = 'funding_source'
nren_id = sa.Column(sa.BigInteger, sa.schema.ForeignKey(NREN.id), primary_key=True) nren_id = sa.Column(sa.Integer, sa.schema.ForeignKey(NREN.id), primary_key=True)
nren = relationship(NREN) nren = relationship(NREN)
year = sa.Column(sa.Integer, primary_key=True) year = sa.Column(sa.Integer, primary_key=True)
client_institutions = sa.Column( client_institutions = sa.Column(
......
...@@ -20,7 +20,7 @@ def upgrade(): ...@@ -20,7 +20,7 @@ def upgrade():
# ### commands auto generated by Alembic - please adjust! ### # ### commands auto generated by Alembic - please adjust! ###
op.create_table( op.create_table(
'nrens', 'nrens',
sa.Column('id', sa.BigInteger(), nullable=False), sa.Column('id', sa.Integer(), nullable=False),
sa.Column('name', sa.String(length=128), nullable=False), sa.Column('name', sa.String(length=128), nullable=False),
sa.PrimaryKeyConstraint('id', name=op.f('pk_nrens')) sa.PrimaryKeyConstraint('id', name=op.f('pk_nrens'))
) )
...@@ -29,13 +29,13 @@ def upgrade(): ...@@ -29,13 +29,13 @@ def upgrade():
"SELECT DISTINCT nren FROM budgets UNION SELECT DISTINCT nren FROM funding_source;" "SELECT DISTINCT nren FROM budgets UNION SELECT DISTINCT nren FROM funding_source;"
) )
op.add_column('budgets', sa.Column('nren_id', sa.BigInteger())) op.add_column('budgets', sa.Column('nren_id', sa.Integer()))
op.execute("UPDATE budgets SET nren_id = nrens.id FROM nrens WHERE budgets.nren = nrens.name") op.execute("UPDATE budgets SET nren_id = nrens.id FROM nrens WHERE budgets.nren = nrens.name")
op.alter_column('budgets', 'nren_id', nullable=False) op.alter_column('budgets', 'nren_id', nullable=False)
op.create_foreign_key(op.f('fk_budgets_nren_id_nrens'), 'budgets', 'nrens', ['nren_id'], ['id']) op.create_foreign_key(op.f('fk_budgets_nren_id_nrens'), 'budgets', 'nrens', ['nren_id'], ['id'])
op.drop_column('budgets', 'nren') op.drop_column('budgets', 'nren')
op.add_column('funding_source', sa.Column('nren_id', sa.BigInteger())) op.add_column('funding_source', sa.Column('nren_id', sa.Integer()))
op.execute("UPDATE funding_source SET nren_id = nrens.id FROM nrens WHERE funding_source.nren = nrens.name") op.execute("UPDATE funding_source SET nren_id = nrens.id FROM nrens WHERE funding_source.nren = nrens.name")
op.alter_column('funding_source', 'nren_id', nullable=False) op.alter_column('funding_source', 'nren_id', nullable=False)
op.create_foreign_key(op.f('fk_funding_source_nren_id_nrens'), 'funding_source', 'nrens', ['nren_id'], ['id']) op.create_foreign_key(op.f('fk_funding_source_nren_id_nrens'), 'funding_source', 'nrens', ['nren_id'], ['id'])
......
...@@ -73,7 +73,7 @@ def test_budget_data(): ...@@ -73,7 +73,7 @@ def test_budget_data():
with db.session_scope() as session: with db.session_scope() as session:
data = [row for row in _test_data_csv("BudgetTestData.csv")] data = [row for row in _test_data_csv("BudgetTestData.csv")]
nren_names = set([row["nren"] for row in data]) nren_names = set([row["nren"] for row in data])
nren_dict = {nren_name: model.NREN(id=idx+1, name=nren_name) for idx, nren_name in enumerate(nren_names)} nren_dict = {nren_name: model.NREN(name=nren_name) for nren_name in nren_names}
session.add_all(nren_dict.values()) session.add_all(nren_dict.values())
for row in data: for row in data:
...@@ -121,7 +121,7 @@ def test_funding_source_data(): ...@@ -121,7 +121,7 @@ def test_funding_source_data():
with db.session_scope() as session: with db.session_scope() as session:
data = [row for row in _test_data_csv("FundingSourceTestData.csv")] data = [row for row in _test_data_csv("FundingSourceTestData.csv")]
nren_names = set([row["nren"] for row in data]) nren_names = set([row["nren"] for row in data])
nren_dict = {nren_name: model.NREN(id=idx+1, name=nren_name) for idx, nren_name in enumerate(nren_names)} nren_dict = {nren_name: model.NREN(name=nren_name) for nren_name in nren_names}
session.add_all(nren_dict.values()) session.add_all(nren_dict.values())
for row in data: for row in data:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment