Ruby 2.3.0を使用してIBM Bluemix上のRails 4.2.7アプリケーションに取り組んでいます。私がDeviseをインストールしたときに、ユーザーモデルの移行が生成されました。ただの標準ファイルです。配備中に、移行によって3つのクエリーが起動します。 usersテーブルを作成するための最初の1:ユニークなインデックス作成のためのRailsマイグレーションと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)
そして2:
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ステートメントを介して直接DB内にテーブルを作成し、末尾にorganize by row
句を追加し、残りの2つのクエリを実行することができます。私は、私は再び同じ問題にぶつかっておくことができますので、私はと思う
CREATE TABLE schema_migrations (version varchar(255) NOT NULL)
CREATE UNIQUE INDEX unique_schema_migrations ON schema_migrations (version)
:
問題は、移行は、以下の2を実行したいとき、私は同じ問題に遭遇してきたということですが、それが再び失敗しました照会しますすべてのテーブルをデフォルトで行ごとに編成する方法を見つけてください。できれば移行を行うことをお勧めします。以前誰かがこの問題に遭遇しましたか?次
マイ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
残念ながら私はBluemixのCLIにアクセスできませんが、これはこのIBMソリューションの主な欠点の1つであると思います。しかし、私はテーブルを変更することができるようにSQLクエリを実行することができます。また、私は自分のヒントを使って自分のローカルDashDBをセットアップすることができます:-) Webアプリケーションの選択肢が悪いと思いますが、DashDB Transactionalバージョンを使用する必要がありますが、ibm_dbがRailsでどのように動作するかを学習する必要がありました。ありがとう! – Kociamber