Справка по рельсовым столам Heroku - PullRequest
8 голосов
/ 06 августа 2011

Я использую Ruby on Rails и мне больше не нужна моя таблица Order, поэтому я удалил ее с помощью диспетчера SQLite. Как я могу сделать удаление таблицы в heroku?

EDIT Я получаю сообщение об ошибке

db/migrate/20110806052256_droptableorders.rb:10: syntax error, unexpected keyword_end, expecting $end

Когда я запускаю команду

class DropTableOrder < ActiveRecord::Migration
  self.up
      drop_table :orders
  end

  self.down
      raise IrreversibleMigration
  end
end

Ответы [ 3 ]

21 голосов
/ 03 сентября 2011

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

$ heroku console
Ruby console for heroku-project-name
>> ActiveRecord::Migration.drop_table(:orders)

Команда, указанная выше, удалит таблицу из вашей базы данных heroku.Вы можете использовать другие методы, такие как create_table, add_column, add_index и т. Д. В модуле ActiveRecord :: Migration, чтобы управлять базой данных без создания и запуска миграции.Но имейте в виду, что в таблице schema_migrations, созданной Rails для управления версиями миграции, останется беспорядок.

Это может быть полезно, только если ваше приложение находится в стадии разработки и вы не хотите терять данныеВы добавили на удаленный сервер постановки на героку.

6 голосов
/ 24 октября 2012

Выполните следующую команду. Здесь 'abc' - это имя приложения

heroku run console --app abc

Тогда используйте,

ActiveRecord::Migration.drop_table(:orders)

Будет сброшена таблица 'order'.

3 голосов
/ 06 августа 2011

Просто создайте миграцию следующим образом:

def self.up
    drop_table :orders
end

def self.down
    # whatever you need to recreate the table or
    # raise IrreversibleMigration
    # if you want this to be irreversible.
end

и затем выполните heroku rake db:migrate при следующем нажатии на изменения.

Возможно, вы захотите воссоздать таблицу в SQLite, чтобы вы также могли запускать эту миграцию локально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...