|
9 | 9 |
|
10 | 10 | from alembic import op |
11 | 11 | import sqlalchemy as sa |
| 12 | +from sqlalchemy import inspect |
12 | 13 |
|
13 | 14 | # revision identifiers, used by Alembic. |
14 | 15 | revision: str = "7c02d9f8f412" |
|
19 | 20 |
|
20 | 21 | def upgrade() -> None: |
21 | 22 | """Create the legacy daily pressure table used for backfill.""" |
22 | | - op.create_table( |
23 | | - "NMA_WaterLevelsContinuous_Pressure_Daily", |
24 | | - sa.Column("GlobalID", sa.String(length=40), primary_key=True), |
25 | | - sa.Column("OBJECTID", sa.Integer(), autoincrement=True, nullable=True), |
26 | | - sa.Column("WellID", sa.String(length=40), nullable=True), |
27 | | - sa.Column("PointID", sa.String(length=50), nullable=True), |
28 | | - sa.Column("DateMeasured", sa.DateTime(), nullable=False), |
29 | | - sa.Column("TemperatureWater", sa.Float(), nullable=True), |
30 | | - sa.Column("WaterHead", sa.Float(), nullable=True), |
31 | | - sa.Column("WaterHeadAdjusted", sa.Float(), nullable=True), |
32 | | - sa.Column("DepthToWaterBGS", sa.Float(), nullable=True), |
33 | | - sa.Column("MeasurementMethod", sa.String(length=2), nullable=True), |
34 | | - sa.Column("DataSource", sa.String(length=5), nullable=True), |
35 | | - sa.Column("MeasuringAgency", sa.String(length=50), nullable=True), |
36 | | - sa.Column("QCed", sa.Boolean(), nullable=True), |
37 | | - sa.Column("Notes", sa.String(length=100), nullable=True), |
38 | | - sa.Column("Created", sa.DateTime(), nullable=False), |
39 | | - sa.Column("Updated", sa.DateTime(), nullable=False), |
40 | | - sa.Column("ProcessedBy", sa.String(length=4), nullable=True), |
41 | | - sa.Column("CheckedBy", sa.String(length=4), nullable=True), |
42 | | - sa.Column("CONDDL (mS/cm)", sa.Float(), nullable=True), |
43 | | - ) |
| 23 | + bind = op.get_bind() |
| 24 | + inspector = inspect(bind) |
| 25 | + if not inspector.has_table("NMA_WaterLevelsContinuous_Pressure_Daily"): |
| 26 | + op.create_table( |
| 27 | + "NMA_WaterLevelsContinuous_Pressure_Daily", |
| 28 | + sa.Column("GlobalID", sa.String(length=40), primary_key=True), |
| 29 | + sa.Column("OBJECTID", sa.Integer(), autoincrement=True, nullable=True), |
| 30 | + sa.Column("WellID", sa.String(length=40), nullable=True), |
| 31 | + sa.Column("PointID", sa.String(length=50), nullable=True), |
| 32 | + sa.Column("DateMeasured", sa.DateTime(), nullable=False), |
| 33 | + sa.Column("TemperatureWater", sa.Float(), nullable=True), |
| 34 | + sa.Column("WaterHead", sa.Float(), nullable=True), |
| 35 | + sa.Column("WaterHeadAdjusted", sa.Float(), nullable=True), |
| 36 | + sa.Column("DepthToWaterBGS", sa.Float(), nullable=True), |
| 37 | + sa.Column("MeasurementMethod", sa.String(length=2), nullable=True), |
| 38 | + sa.Column("DataSource", sa.String(length=5), nullable=True), |
| 39 | + sa.Column("MeasuringAgency", sa.String(length=50), nullable=True), |
| 40 | + sa.Column("QCed", sa.Boolean(), nullable=True), |
| 41 | + sa.Column("Notes", sa.String(length=100), nullable=True), |
| 42 | + sa.Column("Created", sa.DateTime(), nullable=False), |
| 43 | + sa.Column("Updated", sa.DateTime(), nullable=False), |
| 44 | + sa.Column("ProcessedBy", sa.String(length=4), nullable=True), |
| 45 | + sa.Column("CheckedBy", sa.String(length=4), nullable=True), |
| 46 | + sa.Column("CONDDL (mS/cm)", sa.Float(), nullable=True), |
| 47 | + ) |
44 | 48 |
|
45 | 49 |
|
46 | 50 | def downgrade() -> None: |
47 | 51 | """Drop the legacy daily pressure table.""" |
48 | | - op.drop_table("NMA_WaterLevelsContinuous_Pressure_Daily") |
| 52 | + bind = op.get_bind() |
| 53 | + inspector = inspect(bind) |
| 54 | + if inspector.has_table("NMA_WaterLevelsContinuous_Pressure_Daily"): |
| 55 | + op.drop_table("NMA_WaterLevelsContinuous_Pressure_Daily") |
0 commit comments