# Generated by Django 5.2.6 on 2026-06-11 10:56 import django.core.validators import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Genre', fields=[ ('genre_id', models.AutoField(primary_key=True, serialize=False)), ('genre_name', models.CharField(max_length=50, unique=True)), ], options={ 'verbose_name': 'Жанр', 'verbose_name_plural': 'Жанры', 'db_table': 'genre', }, ), migrations.CreateModel( name='Meloman', fields=[ ('meloman_id', models.AutoField(primary_key=True, serialize=False)), ('full_name', models.CharField(max_length=150)), ('gender', models.CharField(blank=True, choices=[('M', 'Мужской'), ('F', 'Женский')], max_length=1, null=True)), ('city', models.CharField(blank=True, max_length=100, null=True)), ('birth_year', models.IntegerField(blank=True, null=True)), ], options={ 'verbose_name': 'Меломан', 'verbose_name_plural': 'Меломанцы', 'db_table': 'meloman', }, ), migrations.CreateModel( name='Musician', fields=[ ('musician_id', models.AutoField(primary_key=True, serialize=False)), ('name', models.CharField(max_length=100, verbose_name='Имя исполнителя')), ('city', models.CharField(blank=True, max_length=100, null=True)), ('birth_year', models.IntegerField(blank=True, null=True)), ], options={ 'verbose_name': 'Исполнитель', 'verbose_name_plural': 'Исполнители', 'db_table': 'musician', }, ), migrations.CreateModel( name='Album', fields=[ ('album_id', models.AutoField(primary_key=True, serialize=False)), ('album_name', models.CharField(max_length=150)), ('release_date', models.DateField(blank=True, null=True)), ('musician', models.ForeignKey(db_column='musician_id', on_delete=django.db.models.deletion.CASCADE, to='mysite.musician')), ], options={ 'verbose_name': 'Альбом', 'verbose_name_plural': 'Альбомы', 'db_table': 'album', }, ), migrations.CreateModel( name='Preference', fields=[ ('preference_id', models.AutoField(primary_key=True, serialize=False)), ('genre', models.ForeignKey(db_column='genre_id', on_delete=django.db.models.deletion.CASCADE, to='mysite.genre')), ('meloman', models.ForeignKey(db_column='meloman_id', on_delete=django.db.models.deletion.CASCADE, to='mysite.meloman')), ], options={ 'verbose_name': 'Предпочтение', 'verbose_name_plural': 'Предпочтения', 'db_table': 'preference', }, ), migrations.CreateModel( name='Song', fields=[ ('song_id', models.AutoField(primary_key=True, serialize=False)), ('title', models.CharField(max_length=150)), ('duration_sec', models.IntegerField(blank=True, null=True, validators=[django.core.validators.MinValueValidator(1)])), ('album', models.ForeignKey(db_column='album_id', on_delete=django.db.models.deletion.CASCADE, to='mysite.album')), ('genre', models.ForeignKey(db_column='genre_id', null=True, on_delete=django.db.models.deletion.SET_NULL, to='mysite.genre')), ], options={ 'verbose_name': 'Песня', 'verbose_name_plural': 'Песни', 'db_table': 'song', }, ), migrations.CreateModel( name='Rating', fields=[ ('rating_id', models.AutoField(primary_key=True, serialize=False)), ('score', models.IntegerField(validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(10)])), ('rating_date', models.DateField(auto_now_add=True)), ('meloman', models.ForeignKey(db_column='meloman_id', on_delete=django.db.models.deletion.CASCADE, to='mysite.meloman')), ('song', models.ForeignKey(db_column='song_id', on_delete=django.db.models.deletion.CASCADE, to='mysite.song')), ], options={ 'verbose_name': 'Оценка', 'verbose_name_plural': 'Оценки', 'db_table': 'rating', }, ), migrations.AddIndex( model_name='album', index=models.Index(fields=['musician'], name='idx_album_musician'), ), migrations.AlterUniqueTogether( name='preference', unique_together={('meloman', 'genre')}, ), migrations.AddIndex( model_name='song', index=models.Index(fields=['album'], name='idx_song_album'), ), migrations.AddIndex( model_name='song', index=models.Index(fields=['genre'], name='idx_song_genre'), ), migrations.AlterUniqueTogether( name='rating', unique_together={('meloman', 'song')}, ), ]