# stating apps
# pip install django-angular
-# waiting for other services
+# waiting for other network services
sh $app/deploy/wait.sh
-# waiting for available database
-python $app/wait.py
-
-# django init
+# django setup
+python $manage wait-for-db
python $manage syncdb --noinput
python $manage migrate --noinput
python $manage bower_install -- --allow-root
+++ /dev/null
-#!/usr/bin/python
-
-import os, time
-from django.core.management import call_command
-
-up = False
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sandbox.settings")
-
-i = 0
-while not up:
- try:
- call_command('syncdb', interactive=False)
- up = True
- except:
- i += 1
- print 'initialization...'
- if i > 10:
- raise
- time.sleep(1)
--- /dev/null
+import os, time
+
+from optparse import make_option
+from django.conf import settings
+from django.core.management.base import BaseCommand, CommandError
+from django.db import connections
+
+
+class Command(BaseCommand):
+ help = "wait for default DB connection"
+
+ db_name = 'default'
+ N = 10
+
+ def handle(self, *args, **options):
+ i = 0
+ connected = False
+ db_conn = connections[self.db_name]
+ while not connected:
+ try:
+ c = db_conn.cursor()
+ connected = True
+ except:
+ print('error connecting to DB...')
+ if i > self.N:
+ print('...exiting')
+ raise
+ print('...retrying')
+ i += 1
+ time.sleep(1)