|
|
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
У меня есть программа на Rails, есть БД и какие-то скрипты миграции. Задача - поменять тип поля с BLOB на LONGBLOB так, чтобы корректно обновились скрипты миграции. Стоит ли начать со скриптов или с изменения БД? Если начать со скриптов, то сохранятся ли данные в БД после миграции? Если начать со скриптов, то как это сделать правильно? Если начать с БД, то как автоматически обновить скрипты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 15:34 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
BPK, Добавить новую миграцию, которая будет добавлять нужный столбец, переливать данные и удалять старый столбец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 17:01 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
Игорь ГорбоносBPK, Добавить новую миграцию, которая будет добавлять нужный столбец, переливать данные и удалять старый столбец. Всё руками, или можно сгенерировать шаблон миграции на основе текущего вида БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 17:16 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
1) сгенерировать новую миграцию, что-то типа: Код: plaintext 2) В метод миграции self.up включить код смены типа поля, что-то типа: Код: plaintext 3) Если нужно массово обновить/пересчитать поле в процессе миграции, то в метод Up включайте запросы, по типу: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 17:18 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
arni, +1 BPK, я не знаю наличие инструментов, которые делают миграцию по готовой БД, наверное и есть, НО при разработке на рельсе краеугольным камнем является модель данных в программе, на основе которой и делаются миграции - изменения структуры БД, а не наоборот. С другой стороны миграция это текстовый файл, который можно сгенерировать и самому на любом доступном языке :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 17:48 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
arni2) В метод миграции self.up включить код смены типа поля, что-то типа: Код: plaintext А в self.down ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 18:04 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
BPKА в self.down ? тут код "обратной" миграции, если конечно изменения обратимы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 18:07 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
arniBPKА в self.down ? тут код "обратной" миграции, если конечно изменения обратимы. А если необратимы, то удалить self.down ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 18:08 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
Уже нашёл: Ruby on Rails Guide: MigrationsSometimes your migration will do something which is just plain irreversible, for example it might destroy some data. In cases like those when you can’t reverse the migration you can raise ActiveRecord::IrreversibleMigration from your down method. If someone tries to revert your migration an error message will be displayed saying that it can’t be done. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 18:11 |
|
||
|
Rails - обновление скрипта миграции (specially for Google: updating the migration script)
|
|||
|---|---|---|---|
|
#18+
BPKА если необратимы, то удалить self.down ? можно как пишут - через выброс исключения, но конкретно в данном случае либо оставить тело метода пустым, либо Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 18:16 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37448453&tid=1342720]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
176ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 454ms |

| 0 / 0 |
