Skip to content

Commit

Permalink
Merge pull request #196 from airbnb/fix_audit
Browse files Browse the repository at this point in the history
Fixing issues around fk nullable=False on audit fields
  • Loading branch information
mistercrunch committed Mar 26, 2016
2 parents e7bed92 + 0f637bd commit 0ccc19f
Show file tree
Hide file tree
Showing 2 changed files with 166 additions and 2 deletions.
164 changes: 164 additions & 0 deletions dashed/migrations/versions/763d4b211ec9_fixing_audit_fk.py
Original file line number Diff line number Diff line change
@@ -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)
4 changes: 2 additions & 2 deletions dashed/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1080,7 +1080,7 @@ def wrapper(*args, **kwargs):
return wrapper


class DruidMetric(Model):
class DruidMetric(Model, AuditMixinNullable):

"""ORM object referencing Druid metrics for a datasource"""

Expand All @@ -1105,7 +1105,7 @@ def json_obj(self):
return obj


class DruidColumn(Model):
class DruidColumn(Model, AuditMixinNullable):

"""ORM model for storing Druid datasource column metadata"""

Expand Down

0 comments on commit 0ccc19f

Please sign in to comment.