datasets_api.migrations package
Submodules
datasets_api.migrations.0001_initial module
- class datasets_api.migrations.0001_initial.Migration(name, app_label)[source]
Bases:
Migration- dependencies = []
- initial = True
- operations = [<CreateModel name='Dataset', fields=[('id', <django.db.models.fields.AutoField>), ('dataset_id', <django.db.models.fields.TextField>)], options={'permissions': (('view', 'View dataset'),)}>]
datasets_api.migrations.0002_dataset_groups module
- class datasets_api.migrations.0002_dataset_groups.Migration(name, app_label)[source]
Bases:
Migration- dependencies = [('auth', '0012_alter_user_first_name_max_length'), ('datasets_api', '0001_initial')]
- operations = [<AddField model_name='dataset', name='groups', field=<django.db.models.fields.related.ManyToManyField>>]
datasets_api.migrations.0003_alter_dataset_options module
datasets_api.migrations.0004_dataset_broken module
datasets_api.migrations.0005_dataset_dataset_name module
datasets_api.migrations.0006_datasethierarchy module
- class datasets_api.migrations.0006_datasethierarchy.Migration(name, app_label)[source]
Bases:
Migration- dependencies = [('datasets_api', '0005_dataset_dataset_name')]
- operations = [<CreateModel name='DatasetHierarchy', fields=[('id', <django.db.models.fields.AutoField>), ('ancestor', <django.db.models.fields.related.ForeignKey>), ('descendant', <django.db.models.fields.related.ForeignKey>)]>]
datasets_api.migrations.0007_datasethierarchy_direct module
- class datasets_api.migrations.0007_datasethierarchy_direct.Migration(name, app_label)[source]
Bases:
Migration- dependencies = [('datasets_api', '0006_datasethierarchy')]
- operations = [<AddField model_name='datasethierarchy', name='direct', field=<django.db.models.fields.BooleanField>, preserve_default=False>]
datasets_api.migrations.0008_datasethierarchy_instance_id module
- class datasets_api.migrations.0008_datasethierarchy_instance_id.Migration(name, app_label)[source]
Bases:
Migration- dependencies = [('datasets_api', '0007_datasethierarchy_direct')]
- operations = [<AddField model_name='datasethierarchy', name='instance_id', field=<django.db.models.fields.TextField>, preserve_default=False>]
datasets_api.migrations.0009_dataset_dataset_id_unique module
- class datasets_api.migrations.0009_dataset_dataset_id_unique.Migration(name, app_label)[source]
Bases:
Migration- dependencies = [('datasets_api', '0008_datasethierarchy_instance_id')]
- operations = [<RunPython <function dedupe_datasets>, <function RunPython.noop>>, <AlterField model_name='dataset', name='dataset_id', field=<django.db.models.fields.CharField>>]
datasets_api.migrations.0010_identifier_fields_to_charfield module
Convert identifier columns from TEXT to VARCHAR(255).
Background (iossifovlab/gpf#836):
The previous shape of migration 0009 set
Dataset.dataset_idtoTextField(unique=True). On MySQL/MariaDB that producesTEXT UNIQUEand fails at apply time with:MySQLdb.OperationalError: (1170, "BLOB/TEXT column 'dataset_id' used in key specification without a key length")
0009 has therefore been amended in place to
CharField(max_length=255, unique=True)so fresh MySQL deploys (and fresh deploys on every backend) get the right schema.Dataset.dataset_nameandDatasetHierarchy.instance_idwere alsoTextFieldfor no good reason — they are short identifiers. This migration switches them toCharField(max_length=255).For existing Postgres deploys (e.g. SFARI / gain-web’s
gpfwa) that already applied the old 0009 againstTEXT, the column is stillTEXT UNIQUE. TheAlterFieldfordataset_idhere is a no-op against the Django model state (0009 already declaresCharField(max_length=255, unique=True)), butschema_editoremits the actualALTER COLUMN ... TYPE VARCHAR(255)SQL against the DB, converting the column in place. On fresh deploys the column is alreadyVARCHAR(255) UNIQUEand the alter is a cheap no-op.
The same logic applies to dataset_name and instance_id: the
model state in 0005 / 0008 still says TextField, so this
migration is the one that records the switch to CharField for
those two.
- class datasets_api.migrations.0010_identifier_fields_to_charfield.Migration(name, app_label)[source]
Bases:
Migration- dependencies = [('datasets_api', '0009_dataset_dataset_id_unique')]
- operations = [<AlterField model_name='dataset', name='dataset_id', field=<django.db.models.fields.CharField>>, <AlterField model_name='dataset', name='dataset_name', field=<django.db.models.fields.CharField>>, <AlterField model_name='datasethierarchy', name='instance_id', field=<django.db.models.fields.CharField>>]