1
1
from django .conf import settings
2
2
3
3
4
- def info ():
5
- db_settings = settings .DATABASES ['default' ]
6
- if 'postgres' in db_settings ['ENGINE' ]:
7
- engine = 'PostgreSQL'
8
- url = '{HOST}:{PORT}/{NAME}' .format (** db_settings )
9
- elif 'mysql' in db_settings ['ENGINE' ]:
10
- engine = 'MySQL'
11
- url = '{HOST}:{PORT}/{NAME}' .format (** db_settings )
12
- elif 'sqlite' in db_settings ['ENGINE' ]:
13
- engine = 'SQLite'
14
- url = '{NAME}' .format (** db_settings )
4
+ import os
5
+
6
+ from django .conf import settings
7
+
8
+
9
+ engines = {
10
+ 'sqlite' : 'django.db.backends.sqlite3' ,
11
+ 'postgresql' : 'django.db.backends.postgresql_psycopg2' ,
12
+ 'mysql' : 'django.db.backends.mysql' ,
13
+ }
14
+
15
+
16
+ def config ():
17
+ service_name = os .getenv ('DATABASE_SERVICE_NAME' , '' ).upper ()
18
+ if service_name :
19
+ engine = engines .get (os .getenv ('DATABASE_ENGINE' ), engines ['sqlite' ])
15
20
else :
16
- engine = 'unknown'
17
- url = ''
21
+ engine = engines ['sqlite' ]
22
+ name = os .getenv ('DATABASE_NAME' )
23
+ if not name and engine == engines ['sqlite' ]:
24
+ name = os .path .join (settings .BASE_DIR , 'db.sqlite3' )
18
25
return {
19
- 'engine' : engine ,
20
- 'url' : url ,
21
- 'is_sqlite' : engine == 'SQLite' ,
22
- }
26
+ 'ENGINE' : engine ,
27
+ 'NAME' : name ,
28
+ 'USER' : os .getenv ('DATABASE_USER' ),
29
+ 'PASSWORD' : os .getenv ('DATABASE_PASSWORD' ),
30
+ 'HOST' : os .getenv ('{}_SERVICE_HOST' .format (service_name )),
31
+ 'PORT' : os .getenv ('{}_SERVICE_PORT' .format (service_name )),
32
+ }
0 commit comments