summaryrefslogtreecommitdiffstats
path: root/db/migrate
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-01-17 14:14:12 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-01-17 14:14:12 +0000
commite3618bdbecd9b5d86eb6d2c8c256ba3fcdf05189 (patch)
tree3b54c10eecece6cc2674491a76a4e5e932d82d1e /db/migrate
parent7f29c2fd88f271ac59f1c10b90942fec57b35ae2 (diff)
downloadredmine-e3618bdbecd9b5d86eb6d2c8c256ba3fcdf05189.tar.gz
redmine-e3618bdbecd9b5d86eb6d2c8c256ba3fcdf05189.zip
Add support for multiple email addresses per user (#4244).
git-svn-id: http://svn.redmine.org/redmine/trunk@13886 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'db/migrate')
-rw-r--r--db/migrate/20150113194759_create_email_addresses.rb12
-rw-r--r--db/migrate/20150113211532_populate_email_addresses.rb14
-rw-r--r--db/migrate/20150113213922_remove_users_mail.rb9
-rw-r--r--db/migrate/20150113213955_add_email_addresses_user_id_index.rb9
4 files changed, 44 insertions, 0 deletions
diff --git a/db/migrate/20150113194759_create_email_addresses.rb b/db/migrate/20150113194759_create_email_addresses.rb
new file mode 100644
index 000000000..a0babce62
--- /dev/null
+++ b/db/migrate/20150113194759_create_email_addresses.rb
@@ -0,0 +1,12 @@
+class CreateEmailAddresses < ActiveRecord::Migration
+ def change
+ create_table :email_addresses do |t|
+ t.column :user_id, :integer, :null => false
+ t.column :address, :string, :null => false
+ t.column :is_default, :boolean, :null => false, :default => false
+ t.column :notify, :boolean, :null => false, :default => true
+ t.column :created_on, :timestamp, :null => false
+ t.column :updated_on, :timestamp, :null => false
+ end
+ end
+end
diff --git a/db/migrate/20150113211532_populate_email_addresses.rb b/db/migrate/20150113211532_populate_email_addresses.rb
new file mode 100644
index 000000000..80a5fb016
--- /dev/null
+++ b/db/migrate/20150113211532_populate_email_addresses.rb
@@ -0,0 +1,14 @@
+class PopulateEmailAddresses < ActiveRecord::Migration
+ def self.up
+ t = EmailAddress.connection.quoted_true
+ n = EmailAddress.connection.quoted_date(Time.now)
+
+ sql = "INSERT INTO #{EmailAddress.table_name} (user_id, address, is_default, notify, created_on, updated_on)" +
+ " SELECT id, mail, #{t}, #{t}, '#{n}', '#{n}' FROM #{User.table_name} WHERE type = 'User' ORDER BY id"
+ EmailAddress.connection.execute(sql)
+ end
+
+ def self.down
+ EmailAddress.delete_all
+ end
+end
diff --git a/db/migrate/20150113213922_remove_users_mail.rb b/db/migrate/20150113213922_remove_users_mail.rb
new file mode 100644
index 000000000..8a8b48429
--- /dev/null
+++ b/db/migrate/20150113213922_remove_users_mail.rb
@@ -0,0 +1,9 @@
+class RemoveUsersMail < ActiveRecord::Migration
+ def self.up
+ remove_column :users, :mail
+ end
+
+ def self.down
+ raise IrreversibleMigration
+ end
+end
diff --git a/db/migrate/20150113213955_add_email_addresses_user_id_index.rb b/db/migrate/20150113213955_add_email_addresses_user_id_index.rb
new file mode 100644
index 000000000..b7fb90c97
--- /dev/null
+++ b/db/migrate/20150113213955_add_email_addresses_user_id_index.rb
@@ -0,0 +1,9 @@
+class AddEmailAddressesUserIdIndex < ActiveRecord::Migration
+ def up
+ add_index :email_addresses, :user_id
+ end
+
+ def down
+ remove_index :email_addresses, :user_id
+ end
+end