aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorRichard Schneeman <richard.schneeman@gmail.com>2016-01-25 08:54:44 -0600
committerRichard Schneeman <richard.schneeman@gmail.com>2016-01-25 08:54:44 -0600
commit4962b44755722eec4a18e52b96ee8fb557ca351d (patch)
treeb5dc0f2e6d8302bc1f4b7a749caed01052e48604 /activerecord/lib/active_record
parentceea3811e2631a16455a40ca5d865a17bee01592 (diff)
parent8897e05ea31186bfa2a05fd9658b2dc5a5d6264a (diff)
downloadrails-4962b44755722eec4a18e52b96ee8fb557ca351d.tar.gz
rails-4962b44755722eec4a18e52b96ee8fb557ca351d.tar.bz2
rails-4962b44755722eec4a18e52b96ee8fb557ca351d.zip
Merge pull request #23161 from schneems/schneems/fix-mysql-internalmetadata
[close #23009] Limit key length
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/internal_metadata.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/internal_metadata.rb b/activerecord/lib/active_record/internal_metadata.rb
index e5c6e5c885..10fee4dca2 100644
--- a/activerecord/lib/active_record/internal_metadata.rb
+++ b/activerecord/lib/active_record/internal_metadata.rb
@@ -5,6 +5,10 @@ module ActiveRecord
# This class is used to create a table that keeps track of values and keys such
# as which environment migrations were run in.
class InternalMetadata < ActiveRecord::Base # :nodoc:
+ # Keys in mysql are limited to 191 characters, due to this no adapter can
+ # use a longer key
+ KEY_LIMIT = 191
+
class << self
def primary_key
"key"
@@ -34,10 +38,11 @@ module ActiveRecord
def create_table
unless table_exists?
connection.create_table(table_name, id: false) do |t|
- t.column :key, :string
+ t.column :key, :string, null: false, limit: KEY_LIMIT
t.column :value, :string
- t.timestamps
t.index :key, unique: true, name: index_name
+
+ t.timestamps
end
end
end