/generator_templates/active_record/migration/create_table_migration.rb
https://gitlab.com/vicvega/gitlab-ce · Ruby · 43 lines · 21 code · 5 blank · 17 comment · 3 complexity · 37b38c846853a7ced2ea013fd875460d MD5 · raw file
- # See http://doc.gitlab.com/ce/development/migration_style_guide.html
- # for more information on how to write migrations for GitLab.
- class <%= migration_class_name %> < ActiveRecord::Migration
- include Gitlab::Database::MigrationHelpers
- # Set this constant to true if this migration requires downtime.
- DOWNTIME = false
- # When a migration requires downtime you **must** uncomment the following
- # constant and define a short and easy to understand explanation as to why the
- # migration requires downtime.
- # DOWNTIME_REASON = ''
- # When using the methods "add_concurrent_index" or "add_column_with_default"
- # you must disable the use of transactions as these methods can not run in an
- # existing transaction. When using "add_concurrent_index" make sure that this
- # method is the _only_ method called in the migration, any other changes
- # should go in a separate migration. This ensures that upon failure _only_ the
- # index creation fails and can be retried or reverted easily.
- #
- # To disable transactions uncomment the following line and remove these
- # comments:
- # disable_ddl_transaction!
- def change
- create_table :<%= table_name %> do |t|
- <% attributes.each do |attribute| -%>
- <% if attribute.password_digest? -%>
- t.string :password_digest<%= attribute.inject_options %>
- <% else -%>
- t.<%= attribute.type %> :<%= attribute.name %><%= attribute.inject_options %>
- <% end -%>
- <% end -%>
- <% if options[:timestamps] %>
- t.timestamps null: false
- <% end -%>
- end
- <% attributes_with_index.each do |attribute| -%>
- add_index :<%= table_name %>, :<%= attribute.index_name %><%= attribute.inject_index_options %>
- <% end -%>
- end
- end