Skip to content

Commit

Permalink
feat: split migrations in two parts: synthese and occhab
Browse files Browse the repository at this point in the history
  • Loading branch information
edelclaux committed Jan 28, 2025
1 parent 03e61af commit 3c7bb34
Show file tree
Hide file tree
Showing 3 changed files with 147 additions and 35 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""[import.monitorings] Adjust gn.imports bib_fields id_dataset and unique_id_dataset values
"""[import.monitorings] Adjust gn.imports bib_fields id_dataset and unique_id_dataset values for syntehse destination
Revision ID: 51ee1572f71f
Revises: df277299fdda
Expand All @@ -9,6 +9,7 @@
from alembic import op
import sqlalchemy as sa

from geonature.core.imports.models import BibFields, Destination

# revision identifiers, used by Alembic.
revision = "51ee1572f71f"
Expand All @@ -19,27 +20,42 @@

def upgrade():
op.execute(
"""
UPDATE gn_imports.bib_fields
SET display = TRUE,
mandatory = TRUE,
type_field = 'dataset',
type_field_params = '{"bind_value": "unique_dataset_id"}',
source_field = 'src_unique_dataset_id',
dest_field = NULL
WHERE name_field = 'unique_dataset_id'
"""
sa.update(BibFields)
.where(
BibFields.name_field == "unique_dataset_id",
BibFields.id_destination == Destination.id_destination,
Destination.code == "synthese",
)
.values(
dict(
display=True,
mandatory=True,
type_field="dataset",
type_field_params=dict(bind_value="unique_dataset_id"),
source_field="src_unique_dataset_id",
dest_field=None,
)
)
)

op.execute(
"""
UPDATE gn_imports.bib_fields
SET display = FALSE,
mandatory = FALSE,
dest_field = 'id_dataset',
source_field = NULL
WHERE name_field = 'id_dataset'
"""
sa.update(BibFields)
.where(
BibFields.name_field == "id_dataset",
BibFields.id_destination == Destination.id_destination,
Destination.code == "synthese",
)
.values(
dict(
display=False,
type_field="textarea",
mandatory=False,
dest_field="id_dataset",
source_field=None,
)
)
)

op.execute(
"""
DO $$
Expand All @@ -60,23 +76,32 @@ def upgrade():

def downgrade():
op.execute(
"""
UPDATE gn_imports.bib_fields
SET display = FALSE,
mandatory = FALSE,
optional_conditions = NULL,
type_field = 'text',
type_field_params = NULL,
dest_field = 'unique_dataset_id'
WHERE name_field = 'unique_dataset_id'
"""
sa.update(BibFields)
.where(
BibFields.name_field == "unique_dataset_id",
BibFields.id_destination == Destination.id_destination,
Destination.code == "synthese",
)
.values(
dict(
display=False,
mandatory=False,
optional_conditions=None,
type_field="text",
type_field_params=None,
dest_field="unique_dataset_id",
)
)
)

op.execute(
"""
UPDATE gn_imports.bib_fields
SET dest_field = NULL
WHERE name_field = 'id_dataset'
"""
sa.update(BibFields)
.where(
BibFields.name_field == "id_dataset",
BibFields.id_destination == Destination.id_destination,
Destination.code == "synthese",
)
.values(dict(dest_field=None))
)
op.add_column(
schema="gn_imports",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,6 @@ def import_data_to_destination(imprt: TImports) -> None:
):
insert_fields |= {field}
if entity.code == "station":
# insert_fields -= {fields["unique_dataset_id"]}
insert_fields |= {fields["id_dataset"]}
insert_fields |= {fields["geom_4326"], fields["geom_local"]}
# [email protected]_import_valid_file: add testcase
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
"""Adjust occhab to datasate management modification in import
Revision ID: 65f77e9d4c6f
Revises: e43f039b5ff1
Create Date: 2025-01-28 11:28:51.311696
"""

from alembic import op
import sqlalchemy as sa

from geonature.core.imports.models import BibFields, Destination

# revision identifiers, used by Alembic.
revision = "65f77e9d4c6f"
down_revision = "e43f039b5ff1"
branch_labels = None
depends_on = None


def upgrade():
op.execute(
sa.update(BibFields)
.where(
BibFields.name_field == "unique_dataset_id",
BibFields.id_destination == Destination.id_destination,
Destination.code == "occhab",
)
.values(
dict(
display=True,
mandatory=True,
type_field="dataset",
type_field_params=dict(bind_value="unique_dataset_id"),
source_field="src_unique_dataset_id",
dest_field=None,
)
)
)

op.execute(
sa.update(BibFields)
.where(
BibFields.name_field == "id_dataset",
BibFields.id_destination == Destination.id_destination,
Destination.code == "occhab",
)
.values(
dict(
display=False,
type_field="textarea",
mandatory=False,
dest_field="id_dataset",
source_field=None,
)
)
)


def downgrade():
op.execute(
sa.update(BibFields)
.where(
BibFields.name_field == "unique_dataset_id",
BibFields.id_destination == Destination.id_destination,
Destination.code == "occhab",
)
.values(
dict(
display=False,
mandatory=False,
optional_conditions=None,
type_field="text",
type_field_params=None,
dest_field="unique_dataset_id",
)
)
)

op.execute(
sa.update(BibFields)
.where(
BibFields.name_field == "id_dataset",
BibFields.id_destination == Destination.id_destination,
Destination.code == "occhab",
)
.values(dict(dest_field=None))
)

0 comments on commit 3c7bb34

Please sign in to comment.