diff --git a/panoramix/migrations/versions/18e88e1cc004_making_audit_nullable.py b/panoramix/migrations/versions/18e88e1cc004_making_audit_nullable.py new file mode 100644 index 0000000000000..bd5f850cce7ce --- /dev/null +++ b/panoramix/migrations/versions/18e88e1cc004_making_audit_nullable.py @@ -0,0 +1,100 @@ +"""making audit nullable + +Revision ID: 18e88e1cc004 +Revises: 430039611635 +Create Date: 2016-03-13 21:30:24.833107 + +""" + +# revision identifiers, used by Alembic. +revision = '18e88e1cc004' +down_revision = '430039611635' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + ### commands auto generated by Alembic - please adjust! ### + op.alter_column('clusters', 'changed_on', + existing_type=sa.DATETIME(), + nullable=True) + op.alter_column('clusters', 'created_on', + existing_type=sa.DATETIME(), + nullable=True) + + try: + op.drop_constraint(None, 'columns', type_='foreignkey') + op.drop_constraint(None, 'columns', type_='foreignkey') + op.drop_column('columns', 'created_on') + op.drop_column('columns', 'created_by_fk') + op.drop_column('columns', 'changed_on') + op.drop_column('columns', 'changed_by_fk') + except: + pass + 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.create_unique_constraint(None, 'dashboards', ['slug']) + 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.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) + ### end Alembic commands ### + + +def downgrade(): + pass diff --git a/panoramix/models.py b/panoramix/models.py index 69a66466fa60d..410d0c905416a 100644 --- a/panoramix/models.py +++ b/panoramix/models.py @@ -35,6 +35,10 @@ class AuditMixinNullable(AuditMixin): + created_on = Column(DateTime, default=datetime.now, nullable=True) + changed_on = Column( + DateTime, default=datetime.now, + onupdate=datetime.now, nullable=True) @declared_attr def created_by_fk(cls): return Column(Integer, ForeignKey('ab_user.id'),