vkk.migrations.0001_initial
1# Generated by Django 4.0.4 on 2022-05-23 14:09 2 3from django.conf import settings 4import django.core.validators 5from django.db import migrations, models 6import django.db.models.deletion 7import django.db.models.expressions 8 9 10class Migration(migrations.Migration): 11 12 initial = True 13 14 dependencies = [ 15 ] 16 17 operations = [ 18 migrations.CreateModel( 19 name='User', 20 fields=[ 21 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 22 ('password', models.CharField(max_length=128, verbose_name='password')), 23 ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), 24 ('first_name', models.CharField(max_length=150, verbose_name='first name')), 25 ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), 26 ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')), 27 ('is_accountant', models.BooleanField(default=False, help_text='Designates whether the user can access features reserved for accounting.', verbose_name='accountant status')), 28 ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), 29 ], 30 options={ 31 'verbose_name': 'user', 32 'verbose_name_plural': 'users', 33 'default_permissions': (), 34 }, 35 ), 36 migrations.CreateModel( 37 name='Announcement', 38 fields=[ 39 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 40 ('message', models.TextField(help_text='Long messages may negativly impact overall website usabillity.', verbose_name='message')), 41 ('is_active', models.BooleanField(default=False, verbose_name='active')), 42 ], 43 options={ 44 'verbose_name': 'announcement', 45 'verbose_name_plural': 'announcements', 46 'default_permissions': (), 47 }, 48 ), 49 migrations.CreateModel( 50 name='Department', 51 fields=[ 52 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 53 ('name', models.CharField(max_length=255, verbose_name='name')), 54 ('accounting_entry', models.CharField(max_length=7, unique=True, verbose_name='accounting entry')), 55 ], 56 options={ 57 'verbose_name': 'department', 58 'verbose_name_plural': 'departments', 59 'default_permissions': (), 60 }, 61 ), 62 migrations.CreateModel( 63 name='NewUser', 64 fields=[ 65 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 66 ('token', models.SlugField(unique=True, verbose_name='token')), 67 ('expiration_date', models.DateField(help_text='Date after which the generated token will be expired.', verbose_name='expiration date')), 68 ], 69 options={ 70 'verbose_name': 'new user', 71 'verbose_name_plural': 'new users', 72 'default_permissions': (), 73 }, 74 ), 75 migrations.CreateModel( 76 name='Period', 77 fields=[ 78 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 79 ('start', models.DateField(verbose_name='start date')), 80 ('end', models.DateField(verbose_name='end date')), 81 ('dead_line', models.DateTimeField(verbose_name='dead line')), 82 ('dead_line_final', models.DateTimeField(verbose_name='final dead line')), 83 ], 84 options={ 85 'verbose_name': 'period', 86 'verbose_name_plural': 'periods', 87 'get_latest_by': 'start', 88 'default_permissions': (), 89 }, 90 ), 91 migrations.CreateModel( 92 name='Project', 93 fields=[ 94 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 95 ('invoice_number', models.IntegerField(help_text='Identifier for invoice as number between 20000000 and 39999999.', unique=True, validators=[django.core.validators.MinValueValidator(20000000), django.core.validators.MaxValueValidator(39999999)], verbose_name='invoice number')), 96 ('name', models.CharField(max_length=255, verbose_name='name')), 97 ('contractor', models.CharField(max_length=255, verbose_name='contractor')), 98 ('start', models.DateField(verbose_name='start date')), 99 ('end', models.DateField(verbose_name='end date')), 100 ('department', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='vkk.department')), 101 ], 102 options={ 103 'verbose_name': 'project', 104 'verbose_name_plural': 'projects', 105 'default_permissions': (), 106 }, 107 ), 108 migrations.CreateModel( 109 name='ProjectAssignment', 110 fields=[ 111 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 112 ('contributor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='contributor')), 113 ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.project', verbose_name='project')), 114 ], 115 options={ 116 'verbose_name': 'project assignment', 117 'verbose_name_plural': 'project assignments', 118 'default_permissions': (), 119 }, 120 ), 121 migrations.CreateModel( 122 name='SalaryLevel', 123 fields=[ 124 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 125 ('salary_code', models.CharField(max_length=15, unique=True, verbose_name='salary code')), 126 ], 127 options={ 128 'verbose_name': 'salary level', 129 'verbose_name_plural': 'salary levels', 130 'default_permissions': (), 131 }, 132 ), 133 migrations.CreateModel( 134 name='WorkHoursCorrection', 135 fields=[ 136 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 137 ('ammount', models.DecimalField(decimal_places=2, help_text='Ammount by which the total number of workhoursfor a given project assignment and period should be corrected.', max_digits=5)), 138 ('period', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.period', verbose_name='period')), 139 ('project_assignment', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.projectassignment', verbose_name='project assignment')), 140 ], 141 options={ 142 'verbose_name': 'work hours correction', 143 'verbose_name_plural': 'work hours correction', 144 'default_permissions': (), 145 }, 146 ), 147 migrations.CreateModel( 148 name='WorkHours', 149 fields=[ 150 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 151 ('day', models.DateField(help_text='Date of work day.', verbose_name='work day')), 152 ('hours', models.DecimalField(decimal_places=2, help_text='Number of hours worked with precision up to two decimal places.', max_digits=4, validators=[django.core.validators.MinValueValidator(0.01), django.core.validators.MaxValueValidator(24)], verbose_name='work hours')), 153 ('period', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.period', verbose_name='period')), 154 ('project_assignment', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.projectassignment', verbose_name='project assignment')), 155 ], 156 options={ 157 'verbose_name': 'work hours', 158 'verbose_name_plural': 'work hours', 159 'default_permissions': (), 160 }, 161 ), 162 migrations.CreateModel( 163 name='ProjectManager', 164 fields=[ 165 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 166 ('start', models.DateField(verbose_name='start date')), 167 ('end', models.DateField(verbose_name='end date')), 168 ('is_proxy', models.BooleanField(default=False, help_text='Designates whether management rights are given to the userfor administrative uses only.', verbose_name='proxy')), 169 ('manager', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='manager')), 170 ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.project', verbose_name='project')), 171 ], 172 options={ 173 'verbose_name': 'project manager', 174 'verbose_name_plural': 'project managers', 175 'default_permissions': (), 176 }, 177 ), 178 migrations.AddField( 179 model_name='projectassignment', 180 name='salary_level', 181 field=models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.salarylevel', verbose_name='salary level'), 182 ), 183 migrations.CreateModel( 184 name='PeriodClosure', 185 fields=[ 186 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 187 ('is_closed', models.BooleanField(default=False, verbose_name='closed')), 188 ('period', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.period', verbose_name='period')), 189 ('project_assignment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.projectassignment', verbose_name='project assignment')), 190 ], 191 options={ 192 'verbose_name': 'period', 193 'verbose_name_plural': 'periods', 194 'default_permissions': (), 195 }, 196 ), 197 migrations.AddConstraint( 198 model_name='period', 199 constraint=models.CheckConstraint(check=models.Q(('start__lte', django.db.models.expressions.F('end'))), name='runtime_check_period'), 200 ), 201 migrations.AddConstraint( 202 model_name='period', 203 constraint=models.CheckConstraint(check=models.Q(('end__lte', django.db.models.expressions.F('dead_line'))), name='dead_line_check_period'), 204 ), 205 migrations.AddConstraint( 206 model_name='period', 207 constraint=models.CheckConstraint(check=models.Q(('dead_line__lte', django.db.models.expressions.F('dead_line_final'))), name='dead_line_final_check_period'), 208 ), 209 migrations.AddField( 210 model_name='newuser', 211 name='user', 212 field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='user'), 213 ), 214 migrations.AddConstraint( 215 model_name='workhourscorrection', 216 constraint=models.UniqueConstraint(fields=('project_assignment', 'period'), name='unique_constraint_work_hours_correction'), 217 ), 218 migrations.AddConstraint( 219 model_name='workhours', 220 constraint=models.UniqueConstraint(fields=('project_assignment', 'day'), name='unique_constraint_work_hours'), 221 ), 222 migrations.AddConstraint( 223 model_name='workhours', 224 constraint=models.CheckConstraint(check=models.Q(('hours__gt', 0.0)), name='min_work_hours'), 225 ), 226 migrations.AddConstraint( 227 model_name='workhours', 228 constraint=models.CheckConstraint(check=models.Q(('hours__lte', 24.0)), name='max_work_hours'), 229 ), 230 migrations.AddConstraint( 231 model_name='projectmanager', 232 constraint=models.CheckConstraint(check=models.Q(('start__lte', django.db.models.expressions.F('end'))), name='runtime_check_manager'), 233 ), 234 migrations.AddConstraint( 235 model_name='projectmanager', 236 constraint=models.UniqueConstraint(fields=('manager', 'project'), name='unique_constraint_project_manager'), 237 ), 238 migrations.AddConstraint( 239 model_name='projectassignment', 240 constraint=models.UniqueConstraint(fields=('contributor', 'salary_level', 'project'), name='unique_constraint_project_assignment'), 241 ), 242 migrations.AddConstraint( 243 model_name='project', 244 constraint=models.CheckConstraint(check=models.Q(('start__lte', django.db.models.expressions.F('end'))), name='runtime_check_projekt'), 245 ), 246 migrations.AddConstraint( 247 model_name='project', 248 constraint=models.CheckConstraint(check=models.Q(('invoice_number__gte', 20000000), ('invoice_number__lte', 39999999)), name='invoice_number_intervall_check'), 249 ), 250 migrations.AddConstraint( 251 model_name='periodclosure', 252 constraint=models.UniqueConstraint(fields=('period', 'project_assignment'), name='unique_constraint_period_closure'), 253 ), 254 ]
class
Migration(django.db.migrations.migration.Migration):
11class Migration(migrations.Migration): 12 13 initial = True 14 15 dependencies = [ 16 ] 17 18 operations = [ 19 migrations.CreateModel( 20 name='User', 21 fields=[ 22 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 23 ('password', models.CharField(max_length=128, verbose_name='password')), 24 ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), 25 ('first_name', models.CharField(max_length=150, verbose_name='first name')), 26 ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), 27 ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')), 28 ('is_accountant', models.BooleanField(default=False, help_text='Designates whether the user can access features reserved for accounting.', verbose_name='accountant status')), 29 ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), 30 ], 31 options={ 32 'verbose_name': 'user', 33 'verbose_name_plural': 'users', 34 'default_permissions': (), 35 }, 36 ), 37 migrations.CreateModel( 38 name='Announcement', 39 fields=[ 40 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 41 ('message', models.TextField(help_text='Long messages may negativly impact overall website usabillity.', verbose_name='message')), 42 ('is_active', models.BooleanField(default=False, verbose_name='active')), 43 ], 44 options={ 45 'verbose_name': 'announcement', 46 'verbose_name_plural': 'announcements', 47 'default_permissions': (), 48 }, 49 ), 50 migrations.CreateModel( 51 name='Department', 52 fields=[ 53 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 54 ('name', models.CharField(max_length=255, verbose_name='name')), 55 ('accounting_entry', models.CharField(max_length=7, unique=True, verbose_name='accounting entry')), 56 ], 57 options={ 58 'verbose_name': 'department', 59 'verbose_name_plural': 'departments', 60 'default_permissions': (), 61 }, 62 ), 63 migrations.CreateModel( 64 name='NewUser', 65 fields=[ 66 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 67 ('token', models.SlugField(unique=True, verbose_name='token')), 68 ('expiration_date', models.DateField(help_text='Date after which the generated token will be expired.', verbose_name='expiration date')), 69 ], 70 options={ 71 'verbose_name': 'new user', 72 'verbose_name_plural': 'new users', 73 'default_permissions': (), 74 }, 75 ), 76 migrations.CreateModel( 77 name='Period', 78 fields=[ 79 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 80 ('start', models.DateField(verbose_name='start date')), 81 ('end', models.DateField(verbose_name='end date')), 82 ('dead_line', models.DateTimeField(verbose_name='dead line')), 83 ('dead_line_final', models.DateTimeField(verbose_name='final dead line')), 84 ], 85 options={ 86 'verbose_name': 'period', 87 'verbose_name_plural': 'periods', 88 'get_latest_by': 'start', 89 'default_permissions': (), 90 }, 91 ), 92 migrations.CreateModel( 93 name='Project', 94 fields=[ 95 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 96 ('invoice_number', models.IntegerField(help_text='Identifier for invoice as number between 20000000 and 39999999.', unique=True, validators=[django.core.validators.MinValueValidator(20000000), django.core.validators.MaxValueValidator(39999999)], verbose_name='invoice number')), 97 ('name', models.CharField(max_length=255, verbose_name='name')), 98 ('contractor', models.CharField(max_length=255, verbose_name='contractor')), 99 ('start', models.DateField(verbose_name='start date')), 100 ('end', models.DateField(verbose_name='end date')), 101 ('department', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='vkk.department')), 102 ], 103 options={ 104 'verbose_name': 'project', 105 'verbose_name_plural': 'projects', 106 'default_permissions': (), 107 }, 108 ), 109 migrations.CreateModel( 110 name='ProjectAssignment', 111 fields=[ 112 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 113 ('contributor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='contributor')), 114 ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.project', verbose_name='project')), 115 ], 116 options={ 117 'verbose_name': 'project assignment', 118 'verbose_name_plural': 'project assignments', 119 'default_permissions': (), 120 }, 121 ), 122 migrations.CreateModel( 123 name='SalaryLevel', 124 fields=[ 125 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 126 ('salary_code', models.CharField(max_length=15, unique=True, verbose_name='salary code')), 127 ], 128 options={ 129 'verbose_name': 'salary level', 130 'verbose_name_plural': 'salary levels', 131 'default_permissions': (), 132 }, 133 ), 134 migrations.CreateModel( 135 name='WorkHoursCorrection', 136 fields=[ 137 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 138 ('ammount', models.DecimalField(decimal_places=2, help_text='Ammount by which the total number of workhoursfor a given project assignment and period should be corrected.', max_digits=5)), 139 ('period', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.period', verbose_name='period')), 140 ('project_assignment', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.projectassignment', verbose_name='project assignment')), 141 ], 142 options={ 143 'verbose_name': 'work hours correction', 144 'verbose_name_plural': 'work hours correction', 145 'default_permissions': (), 146 }, 147 ), 148 migrations.CreateModel( 149 name='WorkHours', 150 fields=[ 151 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 152 ('day', models.DateField(help_text='Date of work day.', verbose_name='work day')), 153 ('hours', models.DecimalField(decimal_places=2, help_text='Number of hours worked with precision up to two decimal places.', max_digits=4, validators=[django.core.validators.MinValueValidator(0.01), django.core.validators.MaxValueValidator(24)], verbose_name='work hours')), 154 ('period', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.period', verbose_name='period')), 155 ('project_assignment', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.projectassignment', verbose_name='project assignment')), 156 ], 157 options={ 158 'verbose_name': 'work hours', 159 'verbose_name_plural': 'work hours', 160 'default_permissions': (), 161 }, 162 ), 163 migrations.CreateModel( 164 name='ProjectManager', 165 fields=[ 166 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 167 ('start', models.DateField(verbose_name='start date')), 168 ('end', models.DateField(verbose_name='end date')), 169 ('is_proxy', models.BooleanField(default=False, help_text='Designates whether management rights are given to the userfor administrative uses only.', verbose_name='proxy')), 170 ('manager', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='manager')), 171 ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.project', verbose_name='project')), 172 ], 173 options={ 174 'verbose_name': 'project manager', 175 'verbose_name_plural': 'project managers', 176 'default_permissions': (), 177 }, 178 ), 179 migrations.AddField( 180 model_name='projectassignment', 181 name='salary_level', 182 field=models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='vkk.salarylevel', verbose_name='salary level'), 183 ), 184 migrations.CreateModel( 185 name='PeriodClosure', 186 fields=[ 187 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 188 ('is_closed', models.BooleanField(default=False, verbose_name='closed')), 189 ('period', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.period', verbose_name='period')), 190 ('project_assignment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vkk.projectassignment', verbose_name='project assignment')), 191 ], 192 options={ 193 'verbose_name': 'period', 194 'verbose_name_plural': 'periods', 195 'default_permissions': (), 196 }, 197 ), 198 migrations.AddConstraint( 199 model_name='period', 200 constraint=models.CheckConstraint(check=models.Q(('start__lte', django.db.models.expressions.F('end'))), name='runtime_check_period'), 201 ), 202 migrations.AddConstraint( 203 model_name='period', 204 constraint=models.CheckConstraint(check=models.Q(('end__lte', django.db.models.expressions.F('dead_line'))), name='dead_line_check_period'), 205 ), 206 migrations.AddConstraint( 207 model_name='period', 208 constraint=models.CheckConstraint(check=models.Q(('dead_line__lte', django.db.models.expressions.F('dead_line_final'))), name='dead_line_final_check_period'), 209 ), 210 migrations.AddField( 211 model_name='newuser', 212 name='user', 213 field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='user'), 214 ), 215 migrations.AddConstraint( 216 model_name='workhourscorrection', 217 constraint=models.UniqueConstraint(fields=('project_assignment', 'period'), name='unique_constraint_work_hours_correction'), 218 ), 219 migrations.AddConstraint( 220 model_name='workhours', 221 constraint=models.UniqueConstraint(fields=('project_assignment', 'day'), name='unique_constraint_work_hours'), 222 ), 223 migrations.AddConstraint( 224 model_name='workhours', 225 constraint=models.CheckConstraint(check=models.Q(('hours__gt', 0.0)), name='min_work_hours'), 226 ), 227 migrations.AddConstraint( 228 model_name='workhours', 229 constraint=models.CheckConstraint(check=models.Q(('hours__lte', 24.0)), name='max_work_hours'), 230 ), 231 migrations.AddConstraint( 232 model_name='projectmanager', 233 constraint=models.CheckConstraint(check=models.Q(('start__lte', django.db.models.expressions.F('end'))), name='runtime_check_manager'), 234 ), 235 migrations.AddConstraint( 236 model_name='projectmanager', 237 constraint=models.UniqueConstraint(fields=('manager', 'project'), name='unique_constraint_project_manager'), 238 ), 239 migrations.AddConstraint( 240 model_name='projectassignment', 241 constraint=models.UniqueConstraint(fields=('contributor', 'salary_level', 'project'), name='unique_constraint_project_assignment'), 242 ), 243 migrations.AddConstraint( 244 model_name='project', 245 constraint=models.CheckConstraint(check=models.Q(('start__lte', django.db.models.expressions.F('end'))), name='runtime_check_projekt'), 246 ), 247 migrations.AddConstraint( 248 model_name='project', 249 constraint=models.CheckConstraint(check=models.Q(('invoice_number__gte', 20000000), ('invoice_number__lte', 39999999)), name='invoice_number_intervall_check'), 250 ), 251 migrations.AddConstraint( 252 model_name='periodclosure', 253 constraint=models.UniqueConstraint(fields=('period', 'project_assignment'), name='unique_constraint_period_closure'), 254 ), 255 ]
The base class for all migrations.
Migration files will import this from django.db.migrations.Migration and subclass it as a class called Migration. It will have one or more of the following attributes:
- operations: A list of Operation instances, probably from django.db.migrations.operations
- dependencies: A list of tuples of (app_path, migration_name)
- run_before: A list of tuples of (app_path, migration_name)
- replaces: A list of migration_names
Note that all migrations come out of migrations and into the Loader or Graph as instances, having been initialized with their app label and name.
operations =
[<CreateModel name='User', fields=[('id', <django.db.models.fields.BigAutoField>), ('password', <django.db.models.fields.CharField>), ('last_login', <django.db.models.fields.DateTimeField>), ('first_name', <django.db.models.fields.CharField>), ('last_name', <django.db.models.fields.CharField>), ('email', <django.db.models.fields.EmailField>), ('is_accountant', <django.db.models.fields.BooleanField>), ('is_active', <django.db.models.fields.BooleanField>)], options={'verbose_name': 'user', 'verbose_name_plural': 'users', 'default_permissions': ()}>, <CreateModel name='Announcement', fields=[('id', <django.db.models.fields.BigAutoField>), ('message', <django.db.models.fields.TextField>), ('is_active', <django.db.models.fields.BooleanField>)], options={'verbose_name': 'announcement', 'verbose_name_plural': 'announcements', 'default_permissions': ()}>, <CreateModel name='Department', fields=[('id', <django.db.models.fields.BigAutoField>), ('name', <django.db.models.fields.CharField>), ('accounting_entry', <django.db.models.fields.CharField>)], options={'verbose_name': 'department', 'verbose_name_plural': 'departments', 'default_permissions': ()}>, <CreateModel name='NewUser', fields=[('id', <django.db.models.fields.BigAutoField>), ('token', <django.db.models.fields.SlugField>), ('expiration_date', <django.db.models.fields.DateField>)], options={'verbose_name': 'new user', 'verbose_name_plural': 'new users', 'default_permissions': ()}>, <CreateModel name='Period', fields=[('id', <django.db.models.fields.BigAutoField>), ('start', <django.db.models.fields.DateField>), ('end', <django.db.models.fields.DateField>), ('dead_line', <django.db.models.fields.DateTimeField>), ('dead_line_final', <django.db.models.fields.DateTimeField>)], options={'verbose_name': 'period', 'verbose_name_plural': 'periods', 'get_latest_by': 'start', 'default_permissions': ()}>, <CreateModel name='Project', fields=[('id', <django.db.models.fields.BigAutoField>), ('invoice_number', <django.db.models.fields.IntegerField>), ('name', <django.db.models.fields.CharField>), ('contractor', <django.db.models.fields.CharField>), ('start', <django.db.models.fields.DateField>), ('end', <django.db.models.fields.DateField>), ('department', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'project', 'verbose_name_plural': 'projects', 'default_permissions': ()}>, <CreateModel name='ProjectAssignment', fields=[('id', <django.db.models.fields.BigAutoField>), ('contributor', <django.db.models.fields.related.ForeignKey>), ('project', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'project assignment', 'verbose_name_plural': 'project assignments', 'default_permissions': ()}>, <CreateModel name='SalaryLevel', fields=[('id', <django.db.models.fields.BigAutoField>), ('salary_code', <django.db.models.fields.CharField>)], options={'verbose_name': 'salary level', 'verbose_name_plural': 'salary levels', 'default_permissions': ()}>, <CreateModel name='WorkHoursCorrection', fields=[('id', <django.db.models.fields.BigAutoField>), ('ammount', <django.db.models.fields.DecimalField>), ('period', <django.db.models.fields.related.ForeignKey>), ('project_assignment', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'work hours correction', 'verbose_name_plural': 'work hours correction', 'default_permissions': ()}>, <CreateModel name='WorkHours', fields=[('id', <django.db.models.fields.BigAutoField>), ('day', <django.db.models.fields.DateField>), ('hours', <django.db.models.fields.DecimalField>), ('period', <django.db.models.fields.related.ForeignKey>), ('project_assignment', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'work hours', 'verbose_name_plural': 'work hours', 'default_permissions': ()}>, <CreateModel name='ProjectManager', fields=[('id', <django.db.models.fields.BigAutoField>), ('start', <django.db.models.fields.DateField>), ('end', <django.db.models.fields.DateField>), ('is_proxy', <django.db.models.fields.BooleanField>), ('manager', <django.db.models.fields.related.ForeignKey>), ('project', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'project manager', 'verbose_name_plural': 'project managers', 'default_permissions': ()}>, <AddField model_name='projectassignment', name='salary_level', field=<django.db.models.fields.related.ForeignKey>>, <CreateModel name='PeriodClosure', fields=[('id', <django.db.models.fields.BigAutoField>), ('is_closed', <django.db.models.fields.BooleanField>), ('period', <django.db.models.fields.related.ForeignKey>), ('project_assignment', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'period', 'verbose_name_plural': 'periods', 'default_permissions': ()}>, <AddConstraint model_name='period', constraint=<CheckConstraint: check=(AND: ('start__lte', F(end))) name='runtime_check_period'>>, <AddConstraint model_name='period', constraint=<CheckConstraint: check=(AND: ('end__lte', F(dead_line))) name='dead_line_check_period'>>, <AddConstraint model_name='period', constraint=<CheckConstraint: check=(AND: ('dead_line__lte', F(dead_line_final))) name='dead_line_final_check_period'>>, <AddField model_name='newuser', name='user', field=<django.db.models.fields.related.OneToOneField>>, <AddConstraint model_name='workhourscorrection', constraint=<UniqueConstraint: fields=('project_assignment', 'period') name='unique_constraint_work_hours_correction'>>, <AddConstraint model_name='workhours', constraint=<UniqueConstraint: fields=('project_assignment', 'day') name='unique_constraint_work_hours'>>, <AddConstraint model_name='workhours', constraint=<CheckConstraint: check=(AND: ('hours__gt', 0.0)) name='min_work_hours'>>, <AddConstraint model_name='workhours', constraint=<CheckConstraint: check=(AND: ('hours__lte', 24.0)) name='max_work_hours'>>, <AddConstraint model_name='projectmanager', constraint=<CheckConstraint: check=(AND: ('start__lte', F(end))) name='runtime_check_manager'>>, <AddConstraint model_name='projectmanager', constraint=<UniqueConstraint: fields=('manager', 'project') name='unique_constraint_project_manager'>>, <AddConstraint model_name='projectassignment', constraint=<UniqueConstraint: fields=('contributor', 'salary_level', 'project') name='unique_constraint_project_assignment'>>, <AddConstraint model_name='project', constraint=<CheckConstraint: check=(AND: ('start__lte', F(end))) name='runtime_check_projekt'>>, <AddConstraint model_name='project', constraint=<CheckConstraint: check=(AND: ('invoice_number__gte', 20000000), ('invoice_number__lte', 39999999)) name='invoice_number_intervall_check'>>, <AddConstraint model_name='periodclosure', constraint=<UniqueConstraint: fields=('period', 'project_assignment') name='unique_constraint_period_closure'>>]
Inherited Members
- django.db.migrations.migration.Migration
- Migration
- run_before
- replaces
- atomic
- name
- app_label
- mutate_state
- apply
- unapply
- suggest_name