aboutsummaryrefslogtreecommitdiffstats
path: root/actiontext/db/migrate/20180528164100_create_action_text_tables.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-01-25 22:01:07 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-01-29 06:49:32 +0900
commit1745e905a314754b65eabc5fa28671c80796f09f (patch)
treede4fa574864a3d760431dee59bf10a9088f86aaf /actiontext/db/migrate/20180528164100_create_action_text_tables.rb
parentb8baa15adb1eccb49d2cfa16616e24095a012ba5 (diff)
downloadrails-1745e905a314754b65eabc5fa28671c80796f09f.tar.gz
rails-1745e905a314754b65eabc5fa28671c80796f09f.tar.bz2
rails-1745e905a314754b65eabc5fa28671c80796f09f.zip
Allow changing text and blob size without giving the `limit` option
In MySQL, the text column size is 65,535 bytes by default (1 GiB in PostgreSQL). It is sometimes too short when people want to use a text column, so they sometimes change the text size to mediumtext (16 MiB) or longtext (4 GiB) by giving the `limit` option. Unlike MySQL, PostgreSQL doesn't allow the `limit` option for a text column (raises ERROR: type modifier is not allowed for type "text"). So `limit: 4294967295` (longtext) couldn't be used in Action Text. I've allowed changing text and blob size without giving the `limit` option, it prevents that migration failure on PostgreSQL.
Diffstat (limited to 'actiontext/db/migrate/20180528164100_create_action_text_tables.rb')
-rw-r--r--actiontext/db/migrate/20180528164100_create_action_text_tables.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/actiontext/db/migrate/20180528164100_create_action_text_tables.rb b/actiontext/db/migrate/20180528164100_create_action_text_tables.rb
new file mode 100644
index 0000000000..e7c66ea6ae
--- /dev/null
+++ b/actiontext/db/migrate/20180528164100_create_action_text_tables.rb
@@ -0,0 +1,13 @@
+class CreateActionTextTables < ActiveRecord::Migration[6.0]
+ def change
+ create_table :action_text_rich_texts do |t|
+ t.string :name, null: false
+ t.text :body, size: :long
+ t.references :record, null: false, polymorphic: true, index: false
+
+ t.timestamps
+
+ t.index [ :record_type, :record_id, :name ], name: "index_action_text_rich_texts_uniqueness", unique: true
+ end
+ end
+end