@@ -162,7 +162,6 @@ def del_rw(action, name, exc):
162
162
163
163
164
164
class DatabaseImportBase (object ):
165
- database_extensions = ['hstore' , 'postgis' ]
166
165
restore_commands = {
167
166
'sql' : 'psql -U postgres db < {}' ,
168
167
'binary' : (
@@ -183,6 +182,7 @@ def __init__(self, *args, **kwargs):
183
182
self .website_id = utils .get_aldryn_project_settings (self .path )['id' ]
184
183
self .website_slug = utils .get_aldryn_project_settings (self .path )['slug' ]
185
184
self .docker_compose = utils .get_docker_compose_cmd (self .path )
185
+ self .database_extensions = self .get_active_db_extensions ()
186
186
docker_compose_config = utils .DockerComposeConfig (self .docker_compose )
187
187
if not docker_compose_config .has_service ('db' ):
188
188
click .secho ('No service "db" found in local project' , fg = 'red' )
@@ -202,6 +202,21 @@ def run(self):
202
202
self .restore_db ()
203
203
self .finish ()
204
204
205
+ def get_active_db_extensions (self ):
206
+ project_settings = utils .get_aldryn_project_settings (self .path )
207
+ default_db_extensions = ['hstore' , 'postgis' ]
208
+
209
+ if 'db_extensions' in project_settings :
210
+ if not isinstance (project_settings ['db_extensions' ], list ):
211
+ raise click .ClickException (
212
+ '{} file contains invalid "db_extensions" value. '
213
+ 'It should contain a list of extensions, for instance: {}'
214
+ .format (settings .ALDRYN_DOT_FILE , default_db_extensions )
215
+ )
216
+ return project_settings ['db_extensions' ]
217
+ else :
218
+ return default_db_extensions
219
+
205
220
def prepare_db_server (self ):
206
221
utils .start_database_server (self .docker_compose )
207
222
0 commit comments