diff --git a/dashed/migrations/versions/763d4b211ec9_fixing_audit_fk.py b/dashed/migrations/versions/763d4b211ec9_fixing_audit_fk.py new file mode 100644 index 0000000000..21557536e9 --- /dev/null +++ b/dashed/migrations/versions/763d4b211ec9_fixing_audit_fk.py @@ -0,0 +1,164 @@ +"""fixing audit fk + +Revision ID: 763d4b211ec9 +Revises: d2424a248d63 +Create Date: 2016-03-24 14:13:44.817723 + +""" + +# revision identifiers, used by Alembic. +revision = '763d4b211ec9' +down_revision = 'd2424a248d63' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.alter_column('columns', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('columns', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('css_templates', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('css_templates', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('dashboards', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('dashboards', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('datasources', 'changed_by_fk', + existing_type=sa.INTEGER(), + nullable=True) + op.alter_column('datasources', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('datasources', 'created_by_fk', + existing_type=sa.INTEGER(), + nullable=True) + op.alter_column('datasources', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('dbs', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('dbs', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.add_column('metrics', sa.Column('changed_by_fk', sa.Integer(), nullable=True)) + op.add_column('metrics', sa.Column('changed_on', sa.DateTime(), nullable=True)) + op.add_column('metrics', sa.Column('created_by_fk', sa.Integer(), nullable=True)) + op.add_column('metrics', sa.Column('created_on', sa.DateTime(), nullable=True)) + op.create_foreign_key(None, 'metrics', 'ab_user', ['changed_by_fk'], ['id']) + op.create_foreign_key(None, 'metrics', 'ab_user', ['created_by_fk'], ['id']) + op.alter_column('slices', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('slices', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('sql_metrics', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('sql_metrics', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('table_columns', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('table_columns', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('tables', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('tables', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('url', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('url', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + + +def downgrade(): + op.alter_column('url', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('url', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('tables', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('tables', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('table_columns', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('table_columns', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('sql_metrics', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('sql_metrics', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('slices', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('slices', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.drop_constraint(None, 'metrics', type_='foreignkey') + op.drop_constraint(None, 'metrics', type_='foreignkey') + op.drop_column('metrics', 'created_on') + op.drop_column('metrics', 'created_by_fk') + op.drop_column('metrics', 'changed_on') + op.drop_column('metrics', 'changed_by_fk') + op.alter_column('dbs', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('dbs', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('datasources', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('datasources', 'created_by_fk', + existing_type=sa.INTEGER(), + nullable=False) + op.alter_column('datasources', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('datasources', 'changed_by_fk', + existing_type=sa.INTEGER(), + nullable=False) + op.alter_column('dashboards', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('dashboards', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('css_templates', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('css_templates', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('columns', 'created_on', + existing_type=sa.DATETIME(), + nullable=False) + op.alter_column('columns', 'changed_on', + existing_type=sa.DATETIME(), + nullable=False) diff --git a/dashed/models.py b/dashed/models.py index 878b5f99f3..db43ab9354 100644 --- a/dashed/models.py +++ b/dashed/models.py @@ -1080,7 +1080,7 @@ class Log(Model): return wrapper -class DruidMetric(Model): +class DruidMetric(Model, AuditMixinNullable): """ORM object referencing Druid metrics for a datasource""" @@ -1105,7 +1105,7 @@ class DruidMetric(Model): return obj -class DruidColumn(Model): +class DruidColumn(Model, AuditMixinNullable): """ORM model for storing Druid datasource column metadata"""