Size: a a a

Kotlin Community

2020 October 11

D

Denys in Kotlin Community
Alexandr Emelyanov
Просто имхо без участия человека полноценно миграцию сделать нельзя
А какие сложности возникают? Большинство вещей можно генерить автоматически, а с кейсами, когда это не подходит, я пока не стыкался.
источник

AE

Alexandr Emelyanov in Kotlin Community
Denys
А какие сложности возникают? Большинство вещей можно генерить автоматически, а с кейсами, когда это не подходит, я пока не стыкался.
1. Добавление not null поля
2. Переименование колонки
3. Смена типа колонки
4. ...

Таких кейсов уйма и когда в таблице есть данные большинство инструментов с автоматической миграцией тупо идут по пути "снесли данные и накатили новую схему" для большей части таких случаев, а во всех остальных тупо валятся
источник

AE

Alexandr Emelyanov in Kotlin Community
Это вечная проблема когда авто обновлению схемы доверяют, а потом бегают с горящей жопой от того, что половины данных нет
источник

D

Denys in Kotlin Community
Alexandr Emelyanov
1. Добавление not null поля
2. Переименование колонки
3. Смена типа колонки
4. ...

Таких кейсов уйма и когда в таблице есть данные большинство инструментов с автоматической миграцией тупо идут по пути "снесли данные и накатили новую схему" для большей части таких случаев, а во всех остальных тупо валятся
Хм, 1 вот так обычно выглядит
operations = [
 migrations.AddField('Author', 'rating', models.IntegerField(default=0)),
]
источник

AE

Alexandr Emelyanov in Kotlin Community
Denys
Хм, 1 вот так обычно выглядит
operations = [
 migrations.AddField('Author', 'rating', models.IntegerField(default=0)),
]
Гышыгы, дефолт 0. Пахнет смердящим костылем и кучей проверок в логике на ноль. А если сами данные ноль?
источник

AE

Alexandr Emelyanov in Kotlin Community
А если там не число?
источник

D

Denys in Kotlin Community
При желании можно миграции править, конечно же. Но писать их руками во многих случаях не очень.
источник

AE

Alexandr Emelyanov in Kotlin Community
Denys
Хм, 1 вот так обычно выглядит
operations = [
 migrations.AddField('Author', 'rating', models.IntegerField(default=0)),
]
Опять таки это не авто миграция, а ручная
источник

D

Denys in Kotlin Community
Alexandr Emelyanov
А если там не число?
А что ещё может быть в IntegerField?
источник

AE

Alexandr Emelyanov in Kotlin Community
Denys
При желании можно миграции править, конечно же. Но писать их руками во многих случаях не очень.
Мы все пишем от и до руками
источник

AE

Alexandr Emelyanov in Kotlin Community
Denys
А что ещё может быть в IntegerField?
А из вопроса не понятно что подразумевается не числовое поле?
источник

D

Denys in Kotlin Community
Alexandr Emelyanov
А из вопроса не понятно что подразумевается не числовое поле?
В Exposed и других библиотеках можно указать default значение. Но если его нет, то без ручной работы не обойтись, да.
источник

QH

Quantum Harmonizer in Kotlin Community
Denys
В Exposed и других библиотеках можно указать default значение. Но если его нет, то без ручной работы не обойтись, да.
А что с переименованием колонок делать? Если старого имени не знаем, то выглядит, будто одну удалили, другую добавили
источник

AM

Andrew Mikhaylov in Kotlin Community
Quantum Harmonizer
А что с переименованием колонок делать? Если старого имени не знаем, то выглядит, будто одну удалили, другую добавили
А в метаданных о колонке это отразить временно, к примеру?
источник

QH

Quantum Harmonizer in Kotlin Community
Andrew Mikhaylov
А в метаданных о колонке это отразить временно, к примеру?
всё можно, вопрос стоимости)
источник

AM

Andrew Mikhaylov in Kotlin Community
Quantum Harmonizer
всё можно, вопрос стоимости)
А разница? Ты всё равно это в ручных миграциях указываешь.
источник

AE

Alexandr Emelyanov in Kotlin Community
Andrew Mikhaylov
А в метаданных о колонке это отразить временно, к примеру?
И не забывать убрать к следующему релизу?
источник

AE

Alexandr Emelyanov in Kotlin Community
Даже больше, запуску. Один и тот же код дважды не запустится
источник

QH

Quantum Harmonizer in Kotlin Community
Alexandr Emelyanov
И не забывать убрать к следующему релизу?
надо проставлять, в какой версии какая колонка как называлась
источник

с#

саша сок #KotlinGang... in Kotlin Community
я пропустил переписку, но как я понял этот вопрос будет норм по контексту.

я пока что вручную колонки все переименовываю / добавляю / удаляю. можно это автоматизировать всё таки ?
источник