In install active_storage on ruby on rails project: rails active_storage:install This command generate this migration file
This migration comes from active_storage (originally 20170806125915)
class CreateActiveStorageTables < ActiveRecord::Migration[5.2] def change create_table :active_storage_blobs do |t| t.string :key, null: false t.string :filename, null: false t.string :content_type t.text :metadata t.bigint :byte_size, null: false t.string :checksum, null: false t.datetime :created_at, null: false
t.index [ :key ], unique: true
end
create_table :active_storage_attachments do |t|
t.string :name, null: false
t.references :record, null: false, polymorphic: true, index: false
t.references :blob, null: false
t.datetime :created_at, null: false
t.index [ :record_type, :record_id, :name, :blob_id ], name: "index_active_storage_attachments_uniqueness", unique: true
end
end end
When I migrate rails db:migrate, I have this error
== 20181020210135 CreateActiveStorageTables: migrating ======================== – create_table(:active_storage_blobs) -> 0.0468s – create_table(:active_storage_attachments) rails aborted! StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: La clé est trop longue. Longueur maximale: 1000: CREATE TABLE active_storage_attachments
( id
bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, name
varchar(1024) NOT NULL, record_type
varchar(255) NOT NULL, record_id
bigint NOT NULL, blob_id
bigint NOT NULL, created_at
datetime NOT NULL, INDEX index_active_storage_attachments_on_blob_id
( blob_id
), UNIQUE INDEX index_active_storage_attachments_uniqueness
( record_type
, record_id
, name
, blob_id
)) C:/Sites/comptabox/db/migrate/20181020210135_create_active_storage_tables.active_storage.rb:16:in change' bin/rails:4:in
require’ bin/rails:4:in `’
Caused by: ActiveRecord::StatementInvalid: Mysql2::Error: La clé est trop longue. Longueur maximale: 1000: CREATE TABLE active_storage_attachments
( id
bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, name
varchar(1024) NOT NULL, record_type
varchar(255) NOT NULL, record_id
bigint NOT NULL, blob_id
bigint NOT NULL, created_at
datetime NOT NULL, INDEX index_active_storage_attachments_on_blob_id
( blob_id
), UNIQUE INDEX index_active_storage_attachments_uniqueness
( record_type
, record_id
, name
, blob_id
)) C:/Sites/comptabox/db/migrate/20181020210135_create_active_storage_tables.active_storage.rb:16:in change' bin/rails:4:in
require’ bin/rails:4:in `’
The key is too long, how I can do?
Thanks a lot for your help