RailsのPRIMARY KEY(id)はデフォルトでAUTOINCREMENT付きINTEGERですが、Rails5.1でより大きなレコード数を扱えるようBIGINTに拡張されました。
この影響で、ridgepoleでRails5.0以前に作成したアプリケーションにスキーマを適用すると以下のような警告が表示されます。
[WARNING] Primary key definition of `versions` differ but `allow_pk_change` option is false
from: {:id=>:serial}
to: {}
Primary keyを変更するには、以下のようにridgepole 0.7.1で追加された--allow-pk-change(主キー変更を明示許可)を追加する必要があります。
$ ridgepole -c config/database.yml -f config/Schemafile -a --allow-pk-change
-- change_column("versions", :id, :bigint, {:auto_increment=>true})
-> 0.1609s
⁋ 2018/02/26↻ 2023/10/09
Railsのテストツールはminitestがバンドルされています。rails testコマンドがテストランナーのコマンドです。以下の指定方法をよく使いますが、さらに細かいオプションで単体ケースの実行な …
Ruby on Railsの標準的なデータベース定義ツールはActiveRecordの”マイグレーション”です。これは、データベース定義の変更点をSQLではなくRubyスクリプトで記述し、バージョン管 …
Railsのマイグレーションやridgepoleの t.timestamps でタイムスタンプが自動生成されますが、デフォルト値にDBMSの時刻取得機能を使用したい場合、以下のように指定すると反映され …
ridgepoleはスキーマ定義ファイルの設定をそのままRDBMSに反映できるツールです( ridgepoleのメリットと使い方 参照)。
運用中のテーブル名やカラム名をリネームしたい場合には注意が必 …
一般的にはRuby on RailsのデータアクセスにActiveRecordを利用しますが、rails new my_app -OオプションでActive Record抜きのプロジェクトを作成できま …
RailsアプリケーションでもJavascriptを多用していますが、当初からアセットパイプラインに乗ることなく開発を進めています。
Javascriptのライブラリを導入する場合、Railsのレイア …
おなじみのとおり、Ruby on Railsの各モデルのidは自動生成される連番数値(INTEGER)がデフォルトです。ただ、Rails 4以降では、設定しだいでUUIDも使えます。
ある程度以上の規 …
Railsなどのアプリケーションで、古いデータを保管するためのアーカイブテーブルを作りたい場合があります。
ridgepoleのスキーマ定義はrubyのDSLになっているため、以下のようにテーブル名の …
RailsのWebサービス開発をテストする際、Controllerをログイン状態別にテストしたいシーンが多々あります。
この場合の、もっともプリミティブなテスト設計は以下のようなものになると考えていま …
Railsのトランザクションは、ActiveRecordの標準機能として手軽に利用できます。
トランザクションとは、 ACID 的な意味で2つ以上の処理をAtomicに実行する機能で、銀行の口座間振替 …
React.jsは、ネイティブアプリのようにインタラクティブなUIを作りやすくするためのJavascriptライブラリです。
従来、Webサービス分野ではjQueryが近い機能を果たしてきましたが …
各ファイルの用途 Ruby on Railsのi18n(国際化)標準機能では、以下の設定ファイル・カタログファイル・Viewテンプレートで多言語カタログを定義できます。 …
Railsでは、Modelが英語の単数形でテーブル名称が複数形になる、など、英語の単数形・複数形の対応を確認しておく必要があります。Railsは全般的に暗黙の規約にもとづいて動作するため、オブジェクト …
Ruby on Railsの開発環境は、新しいバージョンのruby環境とbundlerがあれば比較的簡単に整備できます。
dockerhubの Ruby公式イメージ はbundlerまでセットアップ済 …
EN contents
The standard database definition tool for Ruby on Rails is ActiveRecord’s Migration. It allows …