Является ли Seeding Data с помощью инструментов миграции баз данных, таких как Flyway, хорошей практикой?
Мы находимся в процессе настройки Flyway для нашего проекта, и у нас есть второе мнение о том, хотим ли мы заполнить данные с помощью миграции Flyway или вручную с помощью консоли sql или некоторого загрузочного скрипта.
Мы обеспокоены тем, что, если мы добавим данные в Flyway, это означает, что дальнейшие изменения этих данных также должны быть в Flyway. И нам, вероятно, нужно использовать "where field = x"
или некоторые другие условия, которые могут быть недействительными в определенный момент времени, так как данные могут быть изменены приложением. И это будет проблематично.
В их документации я не вижу ничего, что бы советовало против заполнения данных.
Мне просто интересно, является ли хорошей идеей заполнение данных с помощью инструментов миграции, таких как Flyway.
1 ответ
Лучше всего подходят справочные данные, где ответом будет "да". для данных, изменяемых пользователем, это зависит. Если эти данные нужны изначально во всех средах, то ответ, вероятно, также да. В конце концов, если условие where больше не выполняется в определенной среде позже, это, вероятно, также означает, что вы все равно не хотите перезаписывать эти данные. Или вам нужно назначить фиксированные синтетические и неизменяемые идентификаторы для всех строк, к которым вы всегда сможете обратиться позже, даже перед лицом изменений данных.