2009-07-06 4 views
0

Мне сказали, что по какой-то причине вы не можете обновлять схему базы данных при использовании рельсов. Вы можете удалить таблицу, а затем воссоздать таблицу с обновленной схемой, но это не сработает, если у вас уже есть контент, который хранится в таблице, которую вы хотите обновить.rails update database schema

Что вы рекомендуете?

Спасибо!

ответ

10

То, что вам сказали, неверно. При использовании Rails вы можете обновить схему БД.

То, как вы это делаете, происходит через «миграции».

Общий шаблон - написать набор миграций, которые строят вашу первоначальную схему. По мере развития вашего приложения вы пишете другие миграции, которые меняют таблицы и столбцы в соответствии с развивающимся дизайном. Если приложение находится в процессе производства, вы применяете эти новые миграции к производственной схеме.

Конечно, некоторые изменения испортит ваши существующие данные, но это не имеет ничего общего с Rails. Это было бы верно, независимо от того, какой язык/рамки программирования вы используете.

Если у вас есть устаревшая схема БД и вы не используете миграции, вы все равно можете обновить свою схему, напрямую взаимодействуя с сервером БД. Опять же, что будет работать, а что не будет в этой ситуации, не имеет ничего общего с Rails. Это полностью зависит от структуры схемы и самих данных.

+0

Спасибо, Этан. :) – Jess

0

Если вы отбросите таблицу в содержимом в ней, содержимое будет уничтожено. Тем не менее, вы можете включить миграцию контента наряду с миграциями схемы db, поэтому при обновлении схемы она будет перенесена обратно в таблицу.

+1

Пожалуйста, любите все, что хорошо, избегайте использования миграций для размещения данных в базе данных. Используйте задачу грабли. –