Я работаю над приложением Rails 4.2.7 на IBM Bluemix, используя Ruby 2.3.0. Когда я установил Devise User, была сгенерирована миграция модели, просто стандартный файл, никаких полезных вариантов. Во время развертывания миграция запускает три запроса. Во-первых один для создания пользователей таблицы:Rails migration и CREATE UNIQUE INDEX не работает над DashDB/DB2
CREATE TABLE users (
id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY,
email varchar(255) DEFAULT '' NOT NULL,
encrypted_password varchar(255) DEFAULT '' NOT NULL,
reset_password_token varchar(255),
reset_password_sent_at timestamp,
remember_created_at timestamp,
sign_in_count integer DEFAULT 0 NOT NULL,
current_sign_in_at timestamp,
last_sign_in_at timestamp,
current_sign_in_ip varchar(255),
last_sign_in_ip varchar(255),
created_at timestamp NOT NULL,
updated_at timestamp NOT NULL)
И два для создания уникального индекса:
CREATE UNIQUE INDEX index_users_on_email ON USERS(email)
CREATE UNIQUE INDEX index_users_on_reset_password_token ON USERS(reset_password_token)
Первого утверждение работает нормально, таблица создаются. Однако проблема заключается в том, что тип таблицы создается по умолчанию с organize by column
. CREATE UNIQUE INDEX
заявления были неудачными, и оказалось, что для их запуска таблица должна быть organized by row
.
Я могу удалить миграцию и создать таблицу непосредственно в БД через инструкцию SQL и добавить в конце предложение organize by row
, а затем запустить два оставшихся запроса.
Проблема заключается в том, что я столкнулся с той же проблемой при миграции хотел бежать два ниже запросов она вновь не:
CREATE TABLE schema_migrations (version varchar(255) NOT NULL)
CREATE UNIQUE INDEX unique_schema_migrations ON schema_migrations (version)
Я думаю, что я могу держать снова натыкаясь на той же самой проблемой, и поэтому я бы например, найти способ сделать все таблицы упорядоченными по строкам по умолчанию, желательно с миграцией. Кто-нибудь сталкивался с этой проблемой раньше?
Мои manifest.yml
выглядит следующие:
applications:
- path: .
buildpack: https://github.com/cloudfoundry/ruby-buildpack.git
memory: 1024M
instances: 1
domain: eu-gb.mybluemix.net
name: windykacja
host: windykacja
disk_quota: 1024M
services:
- dashDB-win
и вот мой Gemfile:
source 'https://rubygems.org'
ruby '2.3.0'
gem 'rails', '4.2.7'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'devise'
gem 'bootstrap-sass', '~> 3.3.6'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
group :production do
gem 'rails_12factor'
gem 'ibm_db'
end
group :development, :test do
gem 'byebug'
end
group :development do
gem 'web-console', '~> 2.0'
gem 'spring'
gem 'sqlite3'
end
К сожалению, у меня нет доступа к CLI на Bluemix, я думаю, что это один из главных недостатков этого решения IBM. Однако я могу запускать SQL-запросы, поэтому я могу изменить таблицу. Также я смогу настроить свой локальный DashDB, используя ваши подсказки :-) Я знаю, что это довольно плохой выбор для веб-приложения, и я должен использовать DashDB Transactional, но мне нужно было понять, как работает ibm_db с Rails. Благодаря! – Kociamber