attachinary icon indicating copy to clipboard operation
attachinary copied to clipboard

rake attachinary:install:migrations -> Index table names are too long

Open mklb opened this issue 8 years ago • 2 comments

After running rake attachinary:install:migrations I get the following output

WARNING: Use strings for Figaro configuration. 587 was converted to "587".
== 20171127085142 CreateAttachinaryTables: migrating ==========================
-- create_table(:attachinary_files)
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

Index name 'index_attachinary_files_on_attachinariable_type_and_attachinariable_id' on table 'attachinary_files' is too long; the limit is 63 characters

mklb avatar Nov 27 '17 08:11 mklb

The fix is to add an own index name to the attachinariable reference. t.references :attachinariable, polymorphic: true, index: {name: "index_attachinary_files_attachinariable"}. Also note that I added [5.1] to the ActiveRecord::Migration Class because it was missing. (I am running Rails 5.1 so add your version)

class CreateAttachinaryTables < ActiveRecord::Migration[5.1]
  def change
    create_table :attachinary_files do |t|
      t.references :attachinariable, polymorphic: true, index: {name: "index_attachinary_files_attachinariable"}
      t.string :scope

      t.string :public_id
      t.string :version
      t.integer :width
      t.integer :height
      t.string :format
      t.string :resource_type
      t.timestamps
    end
    add_index :attachinary_files, [:attachinariable_type, :attachinariable_id, :scope], name: 'by_scoped_parent'
  end
end

mklb avatar Nov 27 '17 09:11 mklb

Thanks @mklb

lopezjurip avatar Dec 10 '17 23:12 lopezjurip