with db.database.transaction(): Organization.create_table() default_org = Organization.create( name="Default", slug='default', settings={ Organization.SETTING_GOOGLE_APPS_DOMAINS: list(GOOGLE_APPS_DOMAIN) }) column = Group.org column.default = default_org migrate( migrator.add_column('groups', 'org_id', column), migrator.add_column('events', 'org_id', column), migrator.add_column('data_sources', 'org_id', column), migrator.add_column('users', 'org_id', column), migrator.add_column('dashboards', 'org_id', column), migrator.add_column('queries', 'org_id', column), migrator.add_column('query_results', 'org_id', column), ) # Change the uniqueness constraint on user email to be (org, email): migrate(migrator.drop_index('users', 'users_email'), migrator.add_index('users', ('org_id', 'email'), unique=True)) db.close_db(None)
if __name__ == '__main__': migrator = PostgresqlMigrator(db.database) with db.database.transaction(): Organization.create_table() default_org = Organization.create(name="Default", slug='default', settings={ Organization.SETTING_GOOGLE_APPS_DOMAINS: list(settings.GOOGLE_APPS_DOMAIN) }) column = Group.org column.default = default_org migrate( migrator.add_column('groups', 'org_id', column), migrator.add_column('events', 'org_id', column), migrator.add_column('data_sources', 'org_id', column), migrator.add_column('users', 'org_id', column), migrator.add_column('dashboards', 'org_id', column), migrator.add_column('queries', 'org_id', column), migrator.add_column('query_results', 'org_id', column), ) # Change the uniqueness constraint on user email to be (org, email): migrate( migrator.drop_index('users', 'users_email'), migrator.add_index('users', ('org_id', 'email'), unique=True) ) db.close_db(None)
from redash.models import db import peewee from playhouse.migrate import PostgresqlMigrator, migrate if __name__ == '__main__': migrator = PostgresqlMigrator(db.database) with db.database.transaction(): # Change the uniqueness constraint on data source name to be (org, name): # In some cases it's a constraint: db.database.execute_sql('ALTER TABLE data_sources DROP CONSTRAINT IF EXISTS unique_name') # In others only an index: db.database.execute_sql('DROP INDEX IF EXISTS data_sources_name') migrate( migrator.add_index('data_sources', ('org_id', 'name'), unique=True) ) db.close_db(None)
from redash.models import db import peewee from playhouse.migrate import PostgresqlMigrator, migrate if __name__ == "__main__": migrator = PostgresqlMigrator(db.database) with db.database.transaction(): # Change the uniqueness constraint on data source name to be (org, name): success = False for constraint in ["unique_name", "data_sources_name"]: try: db.database.execute_sql("ALTER TABLE data_sources DROP CONSTRAINT {}".format(constraint)) success = True break except peewee.ProgrammingError: db.close_db(None) if not success: print "Failed removing uniqueness constraint on data source name." print "Please verify its name in the schema, update the migration and run again." exit() migrate(migrator.add_index("data_sources", ("org_id", "name"), unique=True)) db.close_db(None)
from redash.models import db import peewee from playhouse.migrate import PostgresqlMigrator, migrate if __name__ == '__main__': migrator = PostgresqlMigrator(db.database) with db.database.transaction(): # Change the uniqueness constraint on data source name to be (org, name): success = False for constraint in ['unique_name', 'data_sources_name']: try: db.database.execute_sql( "ALTER TABLE data_sources DROP CONSTRAINT {}".format( constraint)) success = True break except peewee.ProgrammingError: db.close_db(None) if not success: print "Failed removing uniqueness constraint on data source name." print "Please verify its name in the schema, update the migration and run again." exit() migrate( migrator.add_index('data_sources', ('org_id', 'name'), unique=True)) db.close_db(None)