Przeglądaj źródła

Fix for mysql import for virtualdomains

Tejinder Jheeta 11 lat temu
rodzic
commit
b411e696d3

+ 7
- 2
roles/mailserver/tasks/postfix.yml Wyświetl plik

@@ -15,8 +15,13 @@
15 15
 - name: Create database for mail server
16 16
   mysql_db: name={{ mail_mysql_database }} state=present
17 17
 
18
-  # i don't know why this import is failing but it is, so did this manually
19
-  # mysql_db: name={{ mail_mysql_database }} state=import target=templates/mailserver.sql.j2
18
+- name: copy over mailserver sql
19
+  template: src=mailserver.sql.j2 dest=/etc/postfix/import.sql owner=root group=root mode=0600
20
+  tags: import_mysql_postfix
21
+
22
+- name: import mysql postfix
23
+  mysql_db: name={{ mail_mysql_database }} state=import target=/etc/postfix/import.sql
24
+  tags: import_mysql_postfix
20 25
 
21 26
 - name: Copy Postfix config files into place
22 27
   template: src=etc_postfix_main.cf.j2 dest=/etc/postfix/main.cf owner=root group=root

+ 12
- 9
roles/mailserver/templates/mailserver.sql.j2 Wyświetl plik

@@ -1,10 +1,16 @@
1
-CREATE TABLE `virtual_domains` (
1
+-- If tables are not dropped, have to truncate before insert or use "insert or replace" (not postgres compatible)
2
+
3
+DROP TABLE IF EXISTS `virtual_users`;
4
+DROP TABLE IF EXISTS `virtual_aliases`;
5
+DROP TABLE IF EXISTS `virtual_domains`;
6
+
7
+CREATE TABLE IF NOT EXISTS `virtual_domains` (
2 8
 	`id` int(11) NOT NULL auto_increment,
3 9
 	`name` varchar(50) NOT NULL,
4 10
 	PRIMARY KEY (`id`)
5 11
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
6 12
 
7
-CREATE TABLE `virtual_users` (
13
+CREATE TABLE IF NOT EXISTS `virtual_users` (
8 14
 	`id` int(11) NOT NULL auto_increment,
9 15
 	`domain_id` int(11) NOT NULL,
10 16
 	`password` varchar(106) NOT NULL,
@@ -14,7 +20,7 @@ CREATE TABLE `virtual_users` (
14 20
 	FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
15 21
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
16 22
 
17
-CREATE TABLE `virtual_aliases` (
23
+CREATE TABLE IF NOT EXISTS `virtual_aliases` (
18 24
 	`id` int(11) NOT NULL auto_increment,
19 25
 	`domain_id` int(11) NOT NULL,
20 26
 	`source` varchar(100) NOT NULL,
@@ -24,13 +30,10 @@ CREATE TABLE `virtual_aliases` (
24 30
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
25 31
 
26 32
 {% for virtual_domain in mail_virtual_domains %}
27
-	INSERT INTO `mailserver`.`virtual_domains` (`id`, `name`)
28
-	VALUES
29
-		('{{ virtual_domain.pk_id }}', '{{ virtual_domain.name }}');
33
+INSERT INTO `mailserver`.`virtual_domains` (`id`, `name`) VALUES ('{{ virtual_domain.pk_id }}', '{{ virtual_domain.name }}');
30 34
 {% endfor %}
31 35
 
32 36
 {% for virtual_user in mail_virtual_users %}
33
-	INSERT INTO `mailserver`.`virtual_users`  (`domain_id`, `password` , `email`)
34
-	VALUES
35
-  	('{{ virtual_domain.domain_pk_id }}', '{{ virtual_user.password_hash }}', '{{ virtual_user.address }}');
37
+INSERT INTO `mailserver`.`virtual_users`  (`domain_id`, `password` , `email`)
38
+	VALUES ('{{ virtual_user.domain_pk_id }}', '{{ virtual_user.password_hash }}', '{{ virtual_user.address }}');
36 39
 {% endfor %}

Ładowanie…
Anuluj
Zapisz