私は、レール5.1アプリケーションを、デフォルトのactive_recordとしてインクリメンタルIDの代わりにUUIDを使用して変換しています。Rails 5 uuid issue with sqlite
私は私がPRODでPGを使用すると「UUID-OSSP」と「pgcryptoの」をサポートするために、移行ファイルを追加しましたid: :uuid
class CreateProjects < ActiveRecord::Migration[5.1]
def change
create_table :projects, id: :uuid do |t|
t.string :title
t.text :description
t.timestamps
end
end
end
を使用するために、私の移行ファイルを変更しました。
class EnablePgcryptoExtension < ActiveRecord::Migration[5.1]
def change
enable_extension 'uuid-ossp'
enable_extension 'pgcrypto'
end
end
しかし、オブジェクトを作成しようとすると、idがnullの場合と同じエラーが発生します。
ActiveRecord::NotNullViolation: SQLite3::ConstraintException: NOT NULL constraint failed: projects.id: INSERT INTO "projects" ("created_at", "updated_at") VALUES (?, ?)
schema.rbは「UUIDが」私は、私はsqlite3のために文字列型の代わりに、UUIDを使用して開始することができます示唆、私は上のつもりで知られているタイプ
# Could not dump table "projects" because of following StandardError
# Unknown type 'uuid' for column 'id'
ないというヒントを提供していますプロダクションのためにポストグルを使用し、uuidsを使いたい。
devでpgを使用する必要がありますか、別の方法がありますか?
...ムーは短すぎる、あなたの開発プラットフォームと生産の1の間で同一の環境を使用する必要があります、またはあなたは多くの困難に直面しますで言っ
本番環境では、開発環境やテスト環境でもそれを実際に使用する必要があります。 PostgreSQLとSQLiteの違いはたくさんあります.Railsは3つの環境すべてで同じデータベースを使用していないことからあなたを守りません。このようなマイナーなデータ型の問題は、あなたの懸念事項の中で最も少なくなります。 –