Sqlite3 в рубине на рельсах и CMD

У меня есть таблица с названиями зданий, и я хочу ее отбросить, потому что я забыл столбец. В cmd я захожу в папку и набираю "sqlite3", затем ".tables", и ничего мне не показывает. Почему так? и что я могу сделать?

2 ответа

Решение

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

Альтернативно, если предыдущая миграция была той, которая создала таблицу с отсутствующим столбцом, и вы еще не распределили эту миграцию, вы можете сделать rake db:rollback, редактируем миграцию и запускаем rake db:migrate снова.

Отсутствие таблиц при запуске команды sqlite, скорее всего, связано с тем, что вы забыли указать файл sqlite для загрузки: sqlite3 <db_name>

Правильный способ отбросить таблицу базы данных - написать для нее миграцию.

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

Active Record отслеживает, какие миграции уже были выполнены, поэтому все, что вам нужно сделать, это обновить исходный код и запустить rake db:migrate. Active Record определит, какие миграции следует запустить. Он также обновит ваш файл db/schema.rb, чтобы он соответствовал структуре вашей базы данных.

Источник: http://guides.rubyonrails.org/migrations.html

Другие вопросы по тегам