170 похожих чатов

Всем привет. Работаю с фреймворком GORM. Может посоветуйте в какую

сторону копать: есть AutoMigrate. Можно ли сделать консольную команду, как в Django (python manage.py migrate), чтобы применить миграции?

2) Как мне получить файлы миграции? Как в Django (python manage.py makemigrations)

17 ответов

29 просмотров

можно не использовать AutoMigrate, а мигрировать любой сторонней либой. Так и по идее и должно быть с GORM, когда проект выходит за стадию pet project

Егор-Друщенко Автор вопроса
Elmanov Anton
можно не использовать AutoMigrate, а мигрировать л...

А что можете посоветовать? Я недавно в Go-тусовке.

Elmanov Anton
можно не использовать AutoMigrate, а мигрировать л...

так быть не должно, поскольку GORM строит автомиграции на основе полученных "знаний", а если он может делать это криво, то им вообще пользоваться не стоит

Павел Середа
так быть не должно, поскольку GORM строит автомигр...

Не понял если честно. Горм на 100% предсказуем как query builder. Если выключить автомиграции, то запросы строятся абсолютно такие же.

Elmanov Anton
Не понял если честно. Горм на 100% предсказуем как...

он элементарно в частичный индекс не может, о чём вы, тоесть он вообще не понимает что это такое, и что-то мне подсказывает что каунт фильтр тоже не понимает, и я вообще очень слаб в базах данных, но мне кажется что gorm это плохой инструмент, его можно(и нужно) сделать лучше, для этого я автору отправлял репорты и он фиксил

Павел Середа
он элементарно в частичный индекс не может, о чём ...

"Не может в частичный индекс" - речь о формировании "сreate index ... where"? Ну да, и ещё много чего - изменять данные, например. Разве я не предложил при выходе на прод отключить авто миграции парой сообщений выше?

Elmanov Anton
"Не может в частичный индекс" - речь о формировани...

дадада это я в документации видел, как ни пытался - у меня не получилось это сделать, я где-то помоему находил примеры, они работали, мой кейс - ни в какую, сейчас затрудняюсь вспомнить от своего кейса решение, помню только условие: есть таблица1-оружие, есть таблица2-игрок, игрок может иметь [0...N] разного оружия, но активным может быть только [0..1] оружия. Решение на уровне БД - через частичный индекс, а в GORM это сделать у меня не получилось

Павел Середа
дадада это я в документации видел, как ни пытался ...

Функционал автомиграции горм очень ограничен и нужен чтобы быстро на коленке создать простые таблицы сущностей и связей. При появлении ограничений с этими миграциями план прост: - добавляете нормальную либу миграций, которая работает с произвольным sql. - дропаете локальную бд (где горм нагенерил таблицы) - запускаете программу с AutoMigrate = true в последний раз. Горм выводит все запросы на экран. - запросы, которые вывел горм, копируете и помещаете в в первый файл миграции другой библиотеки - дропаете бд ещё раз. - накатываете миграции новой либой - проверяете, что все работает Все это на каком-нибудь деве, естественно

Elmanov Anton
Функционал автомиграции горм очень ограничен и нуж...

можно и просто воспользоваться jetbrains бродилкой по базе и вызвать у таблицы generate ddl to query console

Elmanov Anton
Функционал автомиграции горм очень ограничен и нуж...

я рассуждал так: на GORM есть жалобы что он "иногда не может составить оптимизированный запрос". Соответственно, чтобы составлять запросы - необходимо обладать базой знаний по структуре рабочей БД, а раз он не может в частичный индекс - значит он не может и обладать и знаниями по нему, а значит какие-то запросы с его использованием он составит не самым оптимальным образом.

Никита Меркулов
можно и просто воспользоваться jetbrains бродилкой...

это не про миграции, для миграций есть соответствующие инструменты

Matvei Vdovitsyn
Что за бродилка?

например она встроена в голэнд, но если у тебя на него аллергия - можно использовать datagrip

Павел Середа
это не про миграции, для миграций есть соответству...

@Elmanov_anton описал, как можно изначальный sql файл собрать с горма)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта