diora-web/books/migrations/0008_ebook_file.py

39 lines
1.4 KiB
Python
Raw Permalink Normal View History

# Generated by Django 6.1 on 2026-10-19 15:02
# The books' files move out of their rows into a table of their own (docs/database.md):
# copied in one statement, then the two columns are dropped (ALTER TABLE DROP COLUMN).
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('books', '0007_list_indexes'),
]
operations = [
migrations.CreateModel(
name='EBookFile',
fields=[
('book', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='file', serialize=False, to='books.ebook')),
('data_ct', models.TextField()),
('data_iv', models.CharField(max_length=32)),
],
),
migrations.RunSQL(
'INSERT INTO books_ebookfile (book_id, data_ct, data_iv) SELECT id, data_ct, data_iv FROM books_ebook',
reverse_sql='UPDATE books_ebook SET '
'data_ct = (SELECT f.data_ct FROM books_ebookfile f WHERE f.book_id = books_ebook.id), '
'data_iv = (SELECT f.data_iv FROM books_ebookfile f WHERE f.book_id = books_ebook.id)',
),
migrations.RemoveField(
model_name='ebook',
name='data_ct',
),
migrations.RemoveField(
model_name='ebook',
name='data_iv',
),
]