Ejemplo n.º 1
0
    def forwards(self, orm):

        db.delete_foreign_key('invapp_bagaction', 'bag_id')
        # Removing unique constraint on 'Bag', fields ['bagname']
        db.delete_primary_key('invapp_bag')

        # Adding field 'Bag.id'
        db.add_column(u'invapp_bag', u'id',
                      self.gf('django.db.models.fields.IntegerField')(primary_key=True, default=0),
                      keep_default=False)

        db.delete_column(u'invapp_bagaction', 'bag_id')

        db.add_column(u'invapp_bagaction', 'bag_id', self.gf('django.db.models.fields.IntegerField')(default=0))

        db.execute("CREATE SEQUENCE invapp_bag_id_seq")
        db.execute("ALTER TABLE invapp_bag ALTER COLUMN id "
                   "SET DEFAULT nextval('invapp_bag_id_seq'::regclass)")

        sql = db.foreign_key_sql('invapp_bagaction', 'bag_id', 'invapp_bag', 'id')
        db.execute(sql)

        # Changing field 'Bag.bagname'
        #db.alter_column(u'invapp_bag', 'bagname', self.gf('django.db.models.fields.TextField')())

        db.create_unique('invapp_bagaction', ['bag_id', 'action', 'timestamp'])
    def forwards(self, orm):
        "Make remote_id Primary Key"

        # Remove PK from Album
        db.delete_foreign_key('vkontakte_photos_photo', 'album_id')

        photos = orm.Photo.objects.only('album').all()  #

        for p in photos:
            album = orm.Album.objects.get(id=p.album_id)
            p.album_id = album.remote_id
            p.save()

        db.delete_primary_key('vkontakte_photos_album')
        #db.delete_column(u'vkontakte_photos_album', u'id')

        db.create_primary_key('vkontakte_photos_album', ['remote_id'])
        db.alter_column('vkontakte_photos_photo', 'album_id', models.ForeignKey(
            orm['vkontakte_photos.Album'], null=True, blank=True))

        # Remove PK from Photo
        # Remove Foreign key from Comments and likes
        db.delete_foreign_key('vkontakte_photos_comment', 'photo_id')
        db.delete_foreign_key('vkontakte_photos_photo_like_users', 'photo_id')

        db.delete_primary_key('vkontakte_photos_photo')
        #db.delete_column(u'vkontakte_photos_photo', u'id')

        # Create Primary Keys
        db.create_primary_key('vkontakte_photos_photo', ['remote_id'])
    def forwards(self, orm):
        db.delete_primary_key('pelican_admin_blogpost')

        # Adding field 'BlogPost.id'
        db.add_column('pelican_admin_blogpost', 'id',
                      self.gf('django.db.models.fields.AutoField')(default=None, primary_key=True),
                      keep_default=False)


        # Changing field 'BlogPost.file_path'
        db.alter_column('pelican_admin_blogpost', 'file_path', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255))
    def forwards(self, orm):
        # Removing primary key index on 'LeaderboardStanding', fields ['ranking']
        db.delete_primary_key(u'links_leaderboardstanding')

        # Adding field 'LeaderboardStanding.id'
        db.add_column(u'links_leaderboardstanding', u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True))


        # Changing field 'LeaderboardStanding.ranking'
        db.alter_column(u'links_leaderboardstanding', 'ranking', self.gf('django.db.models.fields.PositiveIntegerField')())
        # Adding unique constraint on 'LeaderboardStanding', fields ['ranking', 'metric']
        db.create_unique(u'links_leaderboardstanding', ['ranking', 'metric'])
 def forwards(self, orm):
     db.delete_primary_key('thing_apikey')
     db.rename_column('thing_apikey', 'id', 'keyid')
     if db.backend_name == 'postgres':
         db.execute("ALTER TABLE thing_apikey ADD COLUMN id INTEGER NOT NULL PRIMARY KEY")
         db.execute("CREATE SEQUENCE thing_apikey_id_seq")
         db.execute("SELECT setval('thing_apikey_id_seq', 1)")
         db.execute("ALTER TABLE thing_apikey ALTER COLUMN id SET DEFAULT nextval('thing_apikey_id_seq'::regclass)")
     elif db.backend_name == 'mysql':
         db.add_column('thing_apikey', 'id', models.AutoField(primary_key=True))
     # try a fallback for any other weird databases
     else:
         db.add_column('thing_apikey', 'id', models.AutoField(primary_key=True, default=0), keep_default=False)
Ejemplo n.º 6
0
 def forwards(self, orm):
     if not table_exists('microsite_microsite'):
         # Adding model 'MicroSite'
         db.create_table('microsite_microsite', (
             ('basesection_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['section.BaseSection'], unique=True, primary_key=True)),
         ))
         db.send_create_signal('microsite', ['MicroSite'])
     else:
         db.delete_primary_key('microsite_microsite')
         db.create_primary_key('microsite_microsite', ['basesection_ptr_id'])
         db.delete_column('microsite_microsite', 'section_ptr_id')
         db.alter_column('microsite_microsite', 'basesection_ptr_id', models.ForeignKey(orm['section.BaseSection'], null=False, blank=False))
         db.delete_table('section_section')
 def backwards(self, orm):
     db.delete_primary_key("ralph_assets_assetcategory")
     db.add_column('ralph_assets_assetcategory', 'parent_new_id',
                   self.gf('django.db.models.fields.IntegerField')(blank=True,
                   null=True, db_index=False))
     db.add_column('ralph_assets_assetcategory', 'id',
                   self.gf('django.db.models.fields.AutoField')(blank=True,
                   null=False, db_index=False, primary_key=True, max_length=10))
     db.add_column('ralph_assets_asset', 'category_new_id',
                   self.gf('django.db.models.fields.IntegerField')(blank=True,
                   null=True, db_index=False))
     db.add_column('ralph_assets_assetmodel', 'category_new_id',
                   self.gf('django.db.models.fields.IntegerField')(blank=True,
                   null=True, db_index=False))
     db.start_transaction()
     for i, slug in enumerate(
         db.execute('SELECT slug FROM ralph_assets_assetcategory')):
         slug = slug[0]
         db.execute("UPDATE ralph_assets_assetcategory SET id = %s "
                    "WHERE slug = %s",
                     [i+1, slug])
         db.execute("UPDATE ralph_assets_assetcategory SET parent_new_id = %s "
                    "WHERE parent_id = %s",
                     [i+1, slug])
         db.execute("UPDATE ralph_assets_asset SET category_new_id = %s "
                    "WHERE category_id = %s",
                     [i+1, slug])
         db.execute("UPDATE ralph_assets_assetmodel SET category_new_id = %s "
                    "WHERE category_id = %s",
                     [i+1, slug])
     db.commit_transaction()
     db.delete_column('ralph_assets_assetcategory', 'slug')
     db.delete_column('ralph_assets_assetcategory', 'parent_id')
     db.rename_column('ralph_assets_assetcategory', 'parent_new_id', 'parent_id')
     db.delete_column('ralph_assets_asset', 'category_id')
     db.rename_column('ralph_assets_asset', 'category_new_id', 'category_id')
     db.delete_column('ralph_assets_assetmodel', 'category_id')
     db.rename_column('ralph_assets_assetmodel', 'category_new_id', 'category_id')
     sql = db.foreign_key_sql('ralph_assets_asset',
         'category_id', 'ralph_assets_assetcategory', 'id')
     db.execute(sql)
     sql = db.foreign_key_sql('ralph_assets_assetmodel',
         'category_id', 'ralph_assets_assetcategory', 'id')
     db.execute(sql)
     sql = db.foreign_key_sql('ralph_assets_assetcategory',
         'parent_id', 'ralph_assets_assetcategory', 'id')
     db.execute(sql)
     db.create_index('ralph_assets_assetcategory', ['parent_id'], unique=False)
     db.create_index('ralph_assets_asset', ['category_id'], unique=False)
     db.create_index('ralph_assets_assetmodel', ['category_id'], unique=False)
    def forwards(self, orm):
        # OMFG Get ready, we're going to change the primary key!
        # Doing bad things, disabling triggers
        db.execute("ALTER TABLE brainstorm_idea DISABLE TRIGGER ALL;")

        # Dropping foreign key constraint
        db.delete_foreign_key('brainstorm_idea', 'subsite_id')
        db.execute('DROP INDEX brainstorm_idea_subsite_id_like')
        db.delete_index('brainstorm_idea', ['subsite_id'])

        # Removing primary key on 'Subsite', fields ['slug']
        db.delete_primary_key(u'brainstorm_subsite')

        # Adding primary key field 'Subsite.id'
        db.add_column(u'brainstorm_subsite', u'id',
                      self.gf('django.db.models.fields.IntegerField')(blank=True, null=True))

        # WOW. Have to manually create AutoFields. Thanks Django!
        db.execute('CREATE SEQUENCE brainstorm_subsite_id_seq;')
        db.execute("UPDATE brainstorm_subsite SET id = nextval('brainstorm_subsite_id_seq');")
        db.execute("ALTER TABLE brainstorm_subsite ALTER COLUMN id SET DEFAULT nextval('brainstorm_subsite_id_seq');")
        db.execute('ALTER SEQUENCE brainstorm_subsite_id_seq OWNED BY brainstorm_subsite.id;')
        db.execute("SELECT setval('brainstorm_subsite_id_seq', q.i) FROM(SELECT MAX(id) i FROM brainstorm_subsite) q;")

        # Now make it the pk
        db.create_primary_key('brainstorm_subsite', ['id'])

        # Updating foreign key values
        db.execute('''UPDATE brainstorm_idea idea
                      SET subsite_id = subsite.id
                      FROM brainstorm_subsite subsite
                      WHERE(idea.subsite_id = subsite.slug);''')

        # Casting the fk to an integer
        db.execute("ALTER TABLE brainstorm_idea ALTER COLUMN subsite_id TYPE integer USING CAST(subsite_id AS integer);")

        # Re-adding foreign key constraint
        fk_sql = db.foreign_key_sql('brainstorm_idea', 'subsite_id', 'brainstorm_subsite', 'id')
        db.execute(fk_sql)

        # Changing field 'Subsite.slug' to a plain old slugfield
        db.alter_column(u'brainstorm_subsite', 'slug', self.gf('django.db.models.fields.SlugField')(max_length=50))

        # Adding unique constraint on 'Subsite', fields ['slug']
        db.create_unique(u'brainstorm_subsite', ['slug'])

        # Re-enabling triggers
        db.execute("ALTER TABLE brainstorm_idea ENABLE TRIGGER ALL;")
Ejemplo n.º 9
0
 def test_primary_key(self):
     """
     Test the primary key operations
     """
     
     db.create_table("test_pk", [
         ('id', models.IntegerField(primary_key=True)),
         ('new_pkey', models.IntegerField()),
         ('eggs', models.IntegerField(unique=True)),
     ])
     db.execute_deferred_sql()
     # Remove the default primary key, and make eggs it
     db.delete_primary_key("test_pk")
     db.create_primary_key("test_pk", "new_pkey")
     # Try inserting a now-valid row pair
     db.execute("INSERT INTO test_pk (id, new_pkey, eggs) VALUES (1, 2, 3)")
     db.execute("INSERT INTO test_pk (id, new_pkey, eggs) VALUES (1, 3, 4)")
     db.delete_table("test_pk")
    def forwards(self, orm):
        db.delete_column('pricing_instance_flavor_resource', 'description')
        db.alter_column('pricing_instance_flavor_resource', 'resource_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['resource_pricing.Resource'], unique=True))
        db.rename_column('pricing_instance_flavor_resource', 'resource_id', 'resourcebase_ptr_id')
        db.rename_column('pricing_instance_flavor_resource', 'os_flavor_id', 'os_instance_type_id')
        db.create_index('pricing_instance_flavor_resource', ['os_instance_type_id'], unique=False)
        db.delete_primary_key('pricing_instance_flavor_resource')
        db.add_column('pricing_instance_flavor_resource', 'id', self.gf('django.db.models.fields.AutoField')(primary_key=True))

        db.delete_column('pricing_volume_type_resource', 'description')
        db.delete_primary_key('pricing_volume_type_resource')
        db.rename_column('pricing_volume_type_resource', 'os_type_id', 'os_volume_type_id')
        db.create_index('pricing_volume_type_resource', ['os_volume_type_id'], unique=False)
        db.add_column('pricing_volume_type_resource', u'id',
                      self.gf('django.db.models.fields.AutoField')(primary_key=True),
                      keep_default=False)
        db.alter_column('pricing_volume_type_resource', 'resource_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['resource_pricing.Resource'], unique=True))
        db.rename_column('pricing_volume_type_resource', 'resource_id', 'resource_ptr_id')
Ejemplo n.º 11
0
 def test_primary_key(self):
     """
     Test the primary key operations
     """
     
     db.create_table("test_pk", [
         ('id', models.IntegerField(primary_key=True)),
         ('new_pkey', models.IntegerField()),
         ('eggs', models.IntegerField(unique=True)),
     ])
     db.execute_deferred_sql()
     # Remove the default primary key, and make eggs it
     db.delete_primary_key("test_pk")
     db.create_primary_key("test_pk", "new_pkey")
     # Try inserting a now-valid row pair
     db.execute("INSERT INTO test_pk (id, new_pkey, eggs) VALUES (1, 2, 3)")
     db.execute("INSERT INTO test_pk (id, new_pkey, eggs) VALUES (1, 3, 4)")
     db.delete_table("test_pk")
    def backwards(self, orm):
        # Adding model 'Section'
        db.create_table(
            'section_section',
            (('basesection_ptr',
              self.gf('django.db.models.fields.related.OneToOneField')(
                  to=orm['section.BaseSection'], unique=True,
                  primary_key=True)), ))
        db.send_create_signal('section', ['Section'])

        # Adding field 'BaseSection.status'
        db.add_column('section_basesection',
                      'status',
                      self.gf('django.db.models.fields.CharField')(
                          default='draft', max_length=20, db_index=True),
                      keep_default=False)

        # Adding field 'BaseSection.slug'
        db.add_column('section_basesection',
                      'slug',
                      self.gf('django.db.models.fields.SlugField')(
                          default='',
                          unique=True,
                          max_length=200,
                          db_index=True),
                      keep_default=False)

        # Adding field 'BaseSection.main_image'
        db.add_column('section_basesection',
                      'main_image',
                      self.gf('stdimage.fields.StdImageField')(max_length=100,
                                                               null=True,
                                                               blank=True),
                      keep_default=False)

        # Adding field 'BaseSection.id'
        db.add_column('section_basesection',
                      'id',
                      self.gf('django.db.models.fields.AutoField')(
                          default=0, primary_key=True),
                      keep_default=False)

        # Swapping primary key from basecontent_ptr_id to id
        db.delete_primary_key('section_basesection')
    def backwards(self, orm):
        # Adding model 'Section'
        db.create_table('section_section', (
            ('basesection_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['section.BaseSection'], unique=True, primary_key=True)),
        ))
        db.send_create_signal('section', ['Section'])

        # Adding field 'BaseSection.status'
        db.add_column('section_basesection', 'status', self.gf('django.db.models.fields.CharField')(default='draft', max_length=20, db_index=True), keep_default=False)

        # Adding field 'BaseSection.slug'
        db.add_column('section_basesection', 'slug', self.gf('django.db.models.fields.SlugField')(default='', unique=True, max_length=200, db_index=True), keep_default=False)

        # Adding field 'BaseSection.main_image'
        db.add_column('section_basesection', 'main_image', self.gf('stdimage.fields.StdImageField')(max_length=100, null=True, blank=True), keep_default=False)

        # Adding field 'BaseSection.id'
        db.add_column('section_basesection', 'id', self.gf('django.db.models.fields.AutoField')(default=0, primary_key=True), keep_default=False)

        # Swapping primary key from basecontent_ptr_id to id
        db.delete_primary_key('section_basesection')
Ejemplo n.º 14
0
    def backwards(self, orm):

        db.delete_foreign_key('invapp_bagaction', 'bag_id')

        db.delete_primary_key('invapp_bag')

        # Deleting field 'Bag.id'
        db.delete_column(u'invapp_bag', u'id')

        db.execute('DROP SEQUENCE invapp_bag_id_seq')

        # Changing field 'Bag.bagname'
        db.alter_column(u'invapp_bag', 'bagname', self.gf('django.db.models.fields.TextField')(primary_key=True))

        db.create_primary_key(u'invapp_bag', ['bagname'])

        db.delete_column(u'invapp_bagaction', 'bag_id')

        db.add_column(u'invapp_bagaction', 'bag_id', self.gf('django.db.models.fields.TextField')())

        sql = db.foreign_key_sql('invapp_bagaction', 'bag_id', 'invapp_bag', 'bagname')
        db.execute(sql)

        db.create_unique('invapp_bagaction', ['bag_id', 'action', 'timestamp'])
Ejemplo n.º 15
0
    def forwards(self, orm):
        # on some systmes this constraint is created.
        try:
            db.delete_foreign_key('tko_iteration_result', 'test_idx')
        except ValueError as e:
            logging.warning("Failed to delete foreign key on tko_interation_result, it likely doesn't exist")

        # Removing primary key constraint on tko_iteration_result, allowing more than one keval per test
        db.delete_primary_key('tko_iteration_result')
        db.create_index('tko_iteration_result', ['test_idx'])
        create_perf_view = """
        CREATE OR REPLACE VIEW `tko_perf_view` AS
          SELECT `tko_tests`.`test_idx` AS `test_idx`,
          `tko_tests`.`job_idx` AS `job_idx`,
          `tko_tests`.`test` AS `test`,
          `tko_tests`.`subdir` AS `subdir`,
          `tko_tests`.`kernel_idx` AS `kernel_idx`,
          `tko_tests`.`status` AS `status`,`tko_tests`.`reason` AS `reason`,
          `tko_tests`.`machine_idx` AS `machine_idx`,
          `tko_tests`.`started_time` AS `test_started_time`,
          `tko_tests`.`finished_time` AS `test_finished_time`,
          `tko_jobs`.`tag` AS `job_tag`,
          `tko_jobs`.`label` AS `job_label`,
          `tko_jobs`.`username` AS `job_username`,
          `tko_jobs`.`queued_time` AS `job_queued_time`,
          `tko_jobs`.`started_time` AS `job_started_time`,
          `tko_jobs`.`finished_time` AS `job_finished_time`,
          `tko_machines`.`hostname` AS `machine_hostname`,
          `tko_machines`.`machine_group` AS `machine_group`,
          `tko_machines`.`owner` AS `machine_owner`,
          `tko_kernels`.`kernel_hash` AS `kernel_hash`,
          `tko_kernels`.`base` AS `kernel_base`,
          `tko_kernels`.`printable` AS `kernel_printable`,
          `tko_status`.`word` AS `status_word`,
          `tko_iteration_result`.`iteration` AS `iteration`,
          `tko_iteration_result`.`attribute` AS `iteration_key`,
          `tko_iteration_result`.`value` AS `iteration_value`
          FROM
          (
            (
              (
                (
                  (
                  `tko_tests` join `tko_jobs` ON
                    ((`tko_jobs`.`job_idx` = `tko_tests`.`job_idx`)))
                  JOIN `tko_machines` ON
                    ((`tko_machines`.`machine_idx` = `tko_jobs`.`machine_idx`))
                )
               JOIN `tko_kernels` ON
                ((`tko_kernels`.`kernel_idx` = `tko_tests`.`kernel_idx`))
              )
              JOIN `tko_status` on
                ((`tko_status`.`status_idx` = `tko_tests`.`status`))
            )
            JOIN `tko_iteration_result` ON
              ((`tko_iteration_result`.`test_idx` = `tko_tests`.`test_idx`))
          );
        """
        db.execute(create_perf_view)

        create_perf_view_2 = """
        CREATE OR REPLACE VIEW `tko_perf_view_2` AS
          SELECT `tko_tests`.`test_idx` AS `test_idx`,
          `tko_tests`.`job_idx` AS `job_idx`,
          `tko_tests`.`test` AS `test_name`,
          `tko_tests`.`subdir` AS `subdir`,
          `tko_tests`.`kernel_idx` AS `kernel_idx`,
          `tko_tests`.`status` AS `status_idx`,
          `tko_tests`.`reason` AS `reason`,
          `tko_tests`.`machine_idx` AS `machine_idx`,
          `tko_tests`.`started_time` AS `test_started_time`,
          `tko_tests`.`finished_time` AS `test_finished_time`,
          `tko_jobs`.`tag` AS `job_tag`,
          `tko_jobs`.`label` AS `job_name`,
          `tko_jobs`.`username` AS `job_owner`,
          `tko_jobs`.`queued_time` AS `job_queued_time`,
          `tko_jobs`.`started_time` AS `job_started_time`,
          `tko_jobs`.`finished_time` AS `job_finished_time`,
          `tko_machines`.`hostname` AS `hostname`,
          `tko_machines`.`machine_group` AS `platform`,
          `tko_machines`.`owner` AS `machine_owner`,
          `tko_kernels`.`kernel_hash` AS `kernel_hash`,
          `tko_kernels`.`base` AS `kernel_base`,
          `tko_kernels`.`printable` AS `kernel`,
          `tko_status`.`word` AS `status`,
          `tko_iteration_result`.`iteration` AS `iteration`,
          `tko_iteration_result`.`attribute` AS `iteration_key`,
          `tko_iteration_result`.`value` AS `iteration_value`
        FROM
        (
          (
            (
              (
                (
                  `tko_tests` LEFT JOIN `tko_jobs` ON
                    ((`tko_jobs`.`job_idx` = `tko_tests`.`job_idx`))
                )
                LEFT JOIN `tko_machines` ON
                  ((`tko_machines`.`machine_idx` = `tko_jobs`.`machine_idx`))
              )
              LEFT JOIN `tko_kernels` ON
              ((`tko_kernels`.`kernel_idx` = `tko_tests`.`kernel_idx`))
            )
            LEFT JOIN `tko_status` ON
            ((`tko_status`.`status_idx` = `tko_tests`.`status`))
          )
          LEFT JOIN `tko_iteration_result` ON
            ((`tko_iteration_result`.`test_idx` = `tko_tests`.`test_idx`))
        )
        """
        db.execute(create_perf_view_2)
Ejemplo n.º 16
0
 def forwards(self, orm):
     db.delete_primary_key('riksdagen_document')
     db.create_primary_key('riksdagen_document', ['hangar_id'])
Ejemplo n.º 17
0
    def forwards(self, orm):
        # on some systmes this constraint is created.
        try:
            db.delete_foreign_key('tko_iteration_result', 'test_idx')
        except ValueError:
            logging.warning(
                "Failed to delete foreign key on tko_interation_result, it likely doesn't exist"
            )

        # Removing primary key constraint on tko_iteration_result, allowing more than one keval per test
        db.delete_primary_key('tko_iteration_result')
        db.create_index('tko_iteration_result', ['test_idx'])
        create_perf_view = """
        CREATE OR REPLACE VIEW `tko_perf_view` AS
          SELECT `tko_tests`.`test_idx` AS `test_idx`,
          `tko_tests`.`job_idx` AS `job_idx`,
          `tko_tests`.`test` AS `test`,
          `tko_tests`.`subdir` AS `subdir`,
          `tko_tests`.`kernel_idx` AS `kernel_idx`,
          `tko_tests`.`status` AS `status`,`tko_tests`.`reason` AS `reason`,
          `tko_tests`.`machine_idx` AS `machine_idx`,
          `tko_tests`.`started_time` AS `test_started_time`,
          `tko_tests`.`finished_time` AS `test_finished_time`,
          `tko_jobs`.`tag` AS `job_tag`,
          `tko_jobs`.`label` AS `job_label`,
          `tko_jobs`.`username` AS `job_username`,
          `tko_jobs`.`queued_time` AS `job_queued_time`,
          `tko_jobs`.`started_time` AS `job_started_time`,
          `tko_jobs`.`finished_time` AS `job_finished_time`,
          `tko_machines`.`hostname` AS `machine_hostname`,
          `tko_machines`.`machine_group` AS `machine_group`,
          `tko_machines`.`owner` AS `machine_owner`,
          `tko_kernels`.`kernel_hash` AS `kernel_hash`,
          `tko_kernels`.`base` AS `kernel_base`,
          `tko_kernels`.`printable` AS `kernel_printable`,
          `tko_status`.`word` AS `status_word`,
          `tko_iteration_result`.`iteration` AS `iteration`,
          `tko_iteration_result`.`attribute` AS `iteration_key`,
          `tko_iteration_result`.`value` AS `iteration_value`
          FROM
          (
            (
              (
                (
                  (
                  `tko_tests` join `tko_jobs` ON
                    ((`tko_jobs`.`job_idx` = `tko_tests`.`job_idx`)))
                  JOIN `tko_machines` ON
                    ((`tko_machines`.`machine_idx` = `tko_jobs`.`machine_idx`))
                )
               JOIN `tko_kernels` ON
                ((`tko_kernels`.`kernel_idx` = `tko_tests`.`kernel_idx`))
              )
              JOIN `tko_status` on
                ((`tko_status`.`status_idx` = `tko_tests`.`status`))
            )
            JOIN `tko_iteration_result` ON
              ((`tko_iteration_result`.`test_idx` = `tko_tests`.`test_idx`))
          );
        """
        db.execute(create_perf_view)

        create_perf_view_2 = """
        CREATE OR REPLACE VIEW `tko_perf_view_2` AS
          SELECT `tko_tests`.`test_idx` AS `test_idx`,
          `tko_tests`.`job_idx` AS `job_idx`,
          `tko_tests`.`test` AS `test_name`,
          `tko_tests`.`subdir` AS `subdir`,
          `tko_tests`.`kernel_idx` AS `kernel_idx`,
          `tko_tests`.`status` AS `status_idx`,
          `tko_tests`.`reason` AS `reason`,
          `tko_tests`.`machine_idx` AS `machine_idx`,
          `tko_tests`.`started_time` AS `test_started_time`,
          `tko_tests`.`finished_time` AS `test_finished_time`,
          `tko_jobs`.`tag` AS `job_tag`,
          `tko_jobs`.`label` AS `job_name`,
          `tko_jobs`.`username` AS `job_owner`,
          `tko_jobs`.`queued_time` AS `job_queued_time`,
          `tko_jobs`.`started_time` AS `job_started_time`,
          `tko_jobs`.`finished_time` AS `job_finished_time`,
          `tko_machines`.`hostname` AS `hostname`,
          `tko_machines`.`machine_group` AS `platform`,
          `tko_machines`.`owner` AS `machine_owner`,
          `tko_kernels`.`kernel_hash` AS `kernel_hash`,
          `tko_kernels`.`base` AS `kernel_base`,
          `tko_kernels`.`printable` AS `kernel`,
          `tko_status`.`word` AS `status`,
          `tko_iteration_result`.`iteration` AS `iteration`,
          `tko_iteration_result`.`attribute` AS `iteration_key`,
          `tko_iteration_result`.`value` AS `iteration_value`
        FROM
        (
          (
            (
              (
                (
                  `tko_tests` LEFT JOIN `tko_jobs` ON
                    ((`tko_jobs`.`job_idx` = `tko_tests`.`job_idx`))
                )
                LEFT JOIN `tko_machines` ON
                  ((`tko_machines`.`machine_idx` = `tko_jobs`.`machine_idx`))
              )
              LEFT JOIN `tko_kernels` ON
              ((`tko_kernels`.`kernel_idx` = `tko_tests`.`kernel_idx`))
            )
            LEFT JOIN `tko_status` ON
            ((`tko_status`.`status_idx` = `tko_tests`.`status`))
          )
          LEFT JOIN `tko_iteration_result` ON
            ((`tko_iteration_result`.`test_idx` = `tko_tests`.`test_idx`))
        )
        """
        db.execute(create_perf_view_2)
 def backwards(self, orm):
     db.delete_primary_key('thing_apikey')
     db.delete_column('thing_apikey', 'id')
     db.rename_column('thing_apikey', 'keyid', 'id')
     db.create_primary_key('thing_apikey', 'id')
Ejemplo n.º 19
0
    def forwards(self, orm):
        # OMFG Get ready, we're going to change the primary key!
        # Doing bad things, disabling triggers
        db.execute("ALTER TABLE brainstorm_idea DISABLE TRIGGER ALL;")

        # Dropping foreign key constraint
        db.delete_foreign_key('brainstorm_idea', 'subsite_id')
        db.execute('DROP INDEX brainstorm_idea_subsite_id_like')
        db.delete_index('brainstorm_idea', ['subsite_id'])

        # Removing primary key on 'Subsite', fields ['slug']
        db.delete_primary_key(u'brainstorm_subsite')

        # Adding primary key field 'Subsite.id'
        db.add_column(
            u'brainstorm_subsite', u'id',
            self.gf('django.db.models.fields.IntegerField')(blank=True,
                                                            null=True))

        # WOW. Have to manually create AutoFields. Thanks Django!
        db.execute('CREATE SEQUENCE brainstorm_subsite_id_seq;')
        db.execute(
            "UPDATE brainstorm_subsite SET id = nextval('brainstorm_subsite_id_seq');"
        )
        db.execute(
            "ALTER TABLE brainstorm_subsite ALTER COLUMN id SET DEFAULT nextval('brainstorm_subsite_id_seq');"
        )
        db.execute(
            'ALTER SEQUENCE brainstorm_subsite_id_seq OWNED BY brainstorm_subsite.id;'
        )
        db.execute(
            "SELECT setval('brainstorm_subsite_id_seq', q.i) FROM(SELECT MAX(id) i FROM brainstorm_subsite) q;"
        )

        # Now make it the pk
        db.create_primary_key('brainstorm_subsite', ['id'])

        # Updating foreign key values
        db.execute('''UPDATE brainstorm_idea idea
                      SET subsite_id = subsite.id
                      FROM brainstorm_subsite subsite
                      WHERE(idea.subsite_id = subsite.slug);''')

        # Casting the fk to an integer
        db.execute(
            "ALTER TABLE brainstorm_idea ALTER COLUMN subsite_id TYPE integer USING CAST(subsite_id AS integer);"
        )

        # Re-adding foreign key constraint
        fk_sql = db.foreign_key_sql('brainstorm_idea', 'subsite_id',
                                    'brainstorm_subsite', 'id')
        db.execute(fk_sql)

        # Changing field 'Subsite.slug' to a plain old slugfield
        db.alter_column(
            u'brainstorm_subsite', 'slug',
            self.gf('django.db.models.fields.SlugField')(max_length=50))

        # Adding unique constraint on 'Subsite', fields ['slug']
        db.create_unique(u'brainstorm_subsite', ['slug'])

        # Re-enabling triggers
        db.execute("ALTER TABLE brainstorm_idea ENABLE TRIGGER ALL;")