Fix uploads.path length for long filenames
This will prevent our other migration for adding old files to the uploads table from breaking.
This commit is contained in:
parent
0e97e3089f
commit
dd3ba1f200
2 changed files with 26 additions and 1 deletions
25
db/migrate/20171103000000_set_uploads_path_size_for_mysql.rb
Normal file
25
db/migrate/20171103000000_set_uploads_path_size_for_mysql.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
|
||||
# for more information on how to write migrations for GitLab.
|
||||
|
||||
class SetUploadsPathSizeForMysql < ActiveRecord::Migration
|
||||
include Gitlab::Database::MigrationHelpers
|
||||
|
||||
# Set this constant to true if this migration requires downtime.
|
||||
DOWNTIME = false
|
||||
|
||||
def up
|
||||
# We need at least 297 at the moment. For more detail on that number, see:
|
||||
# https://gitlab.com/gitlab-org/gitlab-ce/issues/40168#what-is-the-expected-correct-behavior
|
||||
#
|
||||
# Rails + PostgreSQL `string` is equivalent to a `text` field, but
|
||||
# Rails + MySQL `string` is `varchar(255)` by default. Also, note that we
|
||||
# have an upper limit because with a unique index, MySQL has a max key
|
||||
# length of 3072 bytes which seems to correspond to `varchar(1024)`.
|
||||
change_column :uploads, :path, :string, limit: 511
|
||||
end
|
||||
|
||||
def down
|
||||
# It was unspecified, which is varchar(255) by default in Rails for MySQL.
|
||||
change_column :uploads, :path, :string
|
||||
end
|
||||
end
|
|
@ -1721,7 +1721,7 @@ ActiveRecord::Schema.define(version: 20171124150326) do
|
|||
|
||||
create_table "uploads", force: :cascade do |t|
|
||||
t.integer "size", limit: 8, null: false
|
||||
t.string "path", null: false
|
||||
t.string "path", limit: 511, null: false
|
||||
t.string "checksum", limit: 64
|
||||
t.integer "model_id"
|
||||
t.string "model_type"
|
||||
|
|
Loading…
Reference in a new issue