Esempio n. 1
0
 def test_run_in_specific_schema(self):
     good = Company.objects.create(schema='good', name='good')
     bad = Company.objects.create(schema='bad', name='bad')
     state = self.migrate([
         self.create_model,
         RunInSchemas(self.run_sql, Company.objects.filter(name='good'))
     ])
     Person = state.apps.get_model('schema_test_app.person')
     bad.activate()
     self.assertFalse(Person.objects.exists())
     good.activate()
     self.assertTrue(Person.objects.exists())
Esempio n. 2
0
class Migration(migrations.Migration):

    dependencies = [("task", "0005_task_refactor")]

    operations = [
        migrations.AddField(
            model_name="group",
            name="search",
            field=tsvector_field.SearchVectorField(
                columns=[
                    tsvector_field.WeightedColumn("name", "A"),
                    tsvector_field.WeightedColumn("description", "D"),
                ],
                language="german",
            ),
        ),
        RunInSchemas(tsvector_field.IndexSearchVector("group", "search")),
        migrations.AddField(
            model_name="task",
            name="search",
            field=tsvector_field.SearchVectorField(
                columns=[
                    tsvector_field.WeightedColumn("name", "A"),
                    tsvector_field.WeightedColumn("description", "D"),
                ],
                language="german",
            ),
        ),
        RunInSchemas(tsvector_field.IndexSearchVector("task", "search")),
        migrations.AlterField(
            model_name="job",
            name="project",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="jobs",
                to="project.Project",
            ),
        ),
    ]
Esempio n. 3
0
class Migration(migrations.Migration):

    dependencies = [("task", "0004_data_migration")]

    operations = [
        migrations.AlterField(
            model_name="task",
            name="job",
            field=models.ForeignKey("task.Job",
                                    models.CASCADE,
                                    related_name="all_tasks"),
        ),
        migrations.AlterField(
            model_name="task",
            name="group",
            field=models.ForeignKey("task.Group",
                                    models.CASCADE,
                                    related_name="tasks"),
        ),
        migrations.RemoveField(model_name="task", name="taskgroup"),
        migrations.DeleteModel("taskgroup"),
        migrations.DeleteModel("oldjob"),
        migrations.AddField(
            model_name="task",
            name="token",
            field=models.BigIntegerField(verbose_name="api token", null=True),
        ),
        migrations.AddField(
            model_name="task",
            name="price",
            field=models.DecimalField(decimal_places=4,
                                      default=0.0,
                                      max_digits=14,
                                      verbose_name="Price"),
        ),
        migrations.AddField(
            model_name="task",
            name="total",
            field=models.DecimalField(decimal_places=4,
                                      default=0.0,
                                      max_digits=14,
                                      verbose_name="Total"),
        ),
        migrations.RenameField(model_name="task",
                               old_name="is_optional",
                               new_name="is_provisional"),
        migrations.AddField(
            model_name="task",
            name="variant_group",
            field=models.PositiveIntegerField(null=True),
        ),
        migrations.AddField(
            model_name="task",
            name="variant_serial",
            field=models.PositiveIntegerField(default=0),
        ),
        migrations.AddField(
            model_name="task",
            name="qty_equation",
            field=models.CharField(blank=True, default="", max_length=512),
            preserve_default=False,
        ),
        migrations.AddField(
            model_name="lineitem",
            name="token",
            field=models.BigIntegerField(verbose_name="api token", null=True),
        ),
        migrations.AddField(
            model_name="lineitem",
            name="is_hidden",
            field=models.BooleanField(default=False),
        ),
        migrations.RenameField(model_name="lineitem",
                               old_name="unit_qty",
                               new_name="qty"),
        migrations.AddField(
            model_name="lineitem",
            name="total",
            field=models.DecimalField(decimal_places=4,
                                      default=0.0,
                                      max_digits=14,
                                      verbose_name="Total"),
        ),
        migrations.RemoveField(model_name="lineitem", name="task_qty"),
        migrations.AddField(
            model_name="lineitem",
            name="order",
            field=models.PositiveIntegerField(db_index=True,
                                              default=1,
                                              editable=False),
            preserve_default=False,
        ),
        migrations.AlterModelOptions(
            name="lineitem",
            options={
                "ordering": ("order", ),
                "verbose_name": "Line Item",
                "verbose_name_plural": "Line Items",
            },
        ),
        # Add task to lineitem, allowing NULLs
        migrations.AddField(
            model_name="lineitem",
            name="task",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name="lineitems",
                to="task.Task",
            ),
        ),
        migrations.AddField(
            model_name="lineitem",
            name="job",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name="all_lineitems",
                to="task.Job",
            ),
        ),
        migrations.AddField(
            model_name="lineitem",
            name="price_equation",
            field=models.CharField(blank=True, default="", max_length=512),
            preserve_default=False,
        ),
        migrations.AddField(
            model_name="lineitem",
            name="qty_equation",
            field=models.CharField(blank=True, default="", max_length=512),
            preserve_default=False,
        ),
        migrations.AddField(
            model_name="lineitem",
            name="total_equation",
            field=models.CharField(blank=True, default="", max_length=512),
            preserve_default=False,
        ),
        # properly set all of the jobs
        migrations.RunSQL("SET CONSTRAINTS ALL IMMEDIATE",
                          reverse_sql=migrations.RunSQL.noop),
        RunInSchemas(migrations.RunPython(upgrade_taskinstance_to_task)),
        # Now alter making it NOT NULL
        migrations.AlterField(
            model_name="lineitem",
            name="task",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="lineitems",
                to="task.Task",
            ),
        ),
        migrations.AlterField(
            model_name="lineitem",
            name="job",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="all_lineitems",
                to="task.Job",
            ),
        ),
        # Cleanup...
        migrations.RemoveField("lineitem", "taskinstance"),
        migrations.DeleteModel("taskinstance"),
        migrations.RunPython(remove_old_content_types),
        migrations.RemoveField(model_name="lineitem", name="billable"),
        migrations.RemoveField(model_name="lineitem", name="is_labor"),
        migrations.RemoveField(model_name="lineitem", name="is_material"),
        migrations.AddField(
            model_name="lineitem",
            name="complete",
            field=models.DecimalField(decimal_places=4,
                                      default=0.0,
                                      max_digits=14,
                                      verbose_name="Completed"),
        ),
        migrations.AddField(
            model_name="task",
            name="total_equation",
            field=models.CharField(blank=True, default="", max_length=512),
            preserve_default=False,
        ),
        migrations.AlterField(
            model_name="lineitem",
            name="unit",
            field=models.CharField(blank=True,
                                   max_length=512,
                                   verbose_name="Unit"),
        ),
        migrations.AlterField(
            model_name="task",
            name="complete",
            field=models.DecimalField(decimal_places=4,
                                      default=0.0,
                                      max_digits=14,
                                      verbose_name="Completed"),
        ),
        migrations.AlterField(
            model_name="task",
            name="unit",
            field=models.CharField(blank=True,
                                   max_length=512,
                                   verbose_name="Unit"),
        ),
        migrations.AddField(
            model_name="task",
            name="price_equation",
            field=models.CharField(blank=True, default="", max_length=512),
            preserve_default=False,
        ),
        migrations.AlterField(
            model_name="lineitem",
            name="name",
            field=models.CharField(blank=True,
                                   max_length=512,
                                   verbose_name="Name"),
        ),
        migrations.AlterField(model_name="task",
                              name="description",
                              field=models.TextField(blank=True)),
    ]
Esempio n. 4
0
class Migration(migrations.Migration):

    dependencies = [("task", "0012_auto_20170613_1704")]

    operations = [RunInSchemas(migrations.RunPython(add_missing_job_accounts))]
Esempio n. 5
0
class Migration(migrations.Migration):

    dependencies = [("document", "0011_auto_20170404_2058")]

    operations = [RunInSchemas(migrations.RunPython(migrate_json))]
Esempio n. 6
0
class Migration(migrations.Migration):

    dependencies = [("task", "0003_group_refactor")]

    operations = [RunInSchemas(migrations.RunPython(copy_old_job_to_new_job))]
Esempio n. 7
0
class Migration(migrations.Migration):

    dependencies = [("company", "0009_auto_20170313_2228")]

    operations = [RunInSchemas(migrations.RunPython(add_contracts))]
Esempio n. 8
0
 def test_in_schema_no_exception(self):
     # test that no exception is thrown
     self.migrate([
         self.create_model,
         RunInSchemas(self.run_sql)
     ])
Esempio n. 9
0
class Migration(migrations.Migration):

    dependencies = [
        ("timetracking", "0012_auto_20170201_1525"),
        ("document", "0010_auto_20170214_0028"),
    ]

    operations = [
        migrations.AlterModelOptions(
            name="timer",
            options={
                "ordering": ("started", ),
                "verbose_name": "timer",
                "verbose_name_plural": "timers",
            },
        ),
        migrations.RenameField(model_name="timer",
                               old_name="end_latitude",
                               new_name="ending_latitude"),
        migrations.RenameField(model_name="timer",
                               old_name="end_longitude",
                               new_name="ending_longitude"),
        migrations.RenameField(model_name="timer",
                               old_name="start_latitude",
                               new_name="starting_latitude"),
        migrations.RenameField(
            model_name="timer",
            old_name="start_longitude",
            new_name="starting_longitude",
        ),
        migrations.AlterField(model_name="timer",
                              name="start",
                              field=models.DateTimeField(db_index=True)),
        migrations.RenameField(model_name="timer",
                               old_name="start",
                               new_name="started"),
        migrations.RenameField(model_name="timer",
                               old_name="end",
                               new_name="stopped"),
        migrations.RemoveField(model_name="timer", name="date"),
        migrations.AlterField(
            model_name="timer",
            name="duration",
            field=models.IntegerField(default=0, help_text="in minutes"),
        ),
        migrations.AlterField(
            model_name="timer",
            name="kind",
            field=models.CharField(
                choices=[
                    ("work", "Work"),
                    ("vacation", "Vacation"),
                    ("sick", "Sick"),
                    ("public_holiday", "Public holiday"),
                    ("paid_leave", "Paid leave"),
                    ("unpaid_leave", "Unpaid leave"),
                ],
                db_index=True,
                default="work",
                max_length=32,
            ),
        ),
        RunInSchemas(migrations.RunPython(update_timers)),
    ]