Пытался создать таблицу без столбца id, но столкнулся с ошибкой «уникальный индекс» из sqlite - PullRequest
0 голосов
/ 13 августа 2011

Я следовал инструкции по ссылке ниже, чтобы «создать таблицу без столбца« id »», так как вместо этого я использую «emp_id». Создать таблицу базы данных ActiveRecord со столбцом no: id?

Я сталкиваюсь с ошибкой "у пользователей таблицы нет столбца с именем id: CREATE UNIQUE INDEX" из Sqlite. Просто интересно, не могли бы вы дать мне несколько советов. Большое спасибо за ваш добрый вклад.

Ниже приведен оригинальный файл миграции:

class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users, :id => false do |t|
      t.integer :emp_id
      t.string :name
      t.integer :dept_id
      t.timestamps
    end
  end

  def self.down
    drop_table :users
  end
end

Ниже приведен результат после запуска "rake db: migrate"

-- add_index(:users, :id, {:unique=>true})
rake aborted!
An error has occurred, this and all later migrations canceled:
SQLite3::SQLException: table users has no column named id: CREATE UNIQUE INDEX       "index_users_on_id" ON "users" ("id")

С уважением, Кевин Х

1 Ответ

0 голосов
/ 14 августа 2011

ActiveRecord ожидает первичный ключ для всех таблиц, которые поддерживают модель (не взаимосвязь, как таблица соединения HTBTM).То, что вы пытаетесь сделать, это STI (наследование одной таблицы), и оно поддерживается другим способом (см. Наследование одной таблицы в Rails 3 Way ).

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