def init_db(): import plenario.models from plenario.utils.weather import WeatherETL, WeatherStationsETL from plenario.utils.shapefile_helpers import PlenarioShapeETL import datetime print 'creating master, meta and user tables' Base.metadata.create_all(bind=app_engine) if plenario.settings.DEFAULT_USER: print 'creating default user %s' % plenario.settings.DEFAULT_USER['name'] user = plenario.models.User(**plenario.settings.DEFAULT_USER) session.add(user) session.commit() print 'initializing NOAA weather stations' s = WeatherStationsETL() s.initialize() print 'initializing NOAA daily and hourly weather observations for %s/%s' % (datetime.datetime.now().month, datetime.datetime.now().year) print 'this will take a few minutes ...' e = WeatherETL() e.initialize_month(datetime.datetime.now().year, datetime.datetime.now().month) print 'initializing and populating US Census blocks' print 'this will *also* take a few minutes ...' shp = PlenarioShapeETL(plenario.settings.CENSUS_BLOCKS) shp.add()
def init_db(): import plenario.models from plenario.utils.weather import WeatherETL, WeatherStationsETL from plenario.utils.shapefile_helpers import PlenarioShapeETL import datetime print 'creating master, meta and user tables' Base.metadata.create_all(bind=app_engine) if plenario.settings.DEFAULT_USER: print 'creating default user %s' % plenario.settings.DEFAULT_USER[ 'name'] user = plenario.models.User(**plenario.settings.DEFAULT_USER) session.add(user) session.commit() print 'initializing NOAA weather stations' s = WeatherStationsETL() s.initialize() print 'initializing NOAA daily and hourly weather observations for %s/%s' % ( datetime.datetime.now().month, datetime.datetime.now().year) print 'this will take a few minutes ...' e = WeatherETL() e.initialize_month(datetime.datetime.now().year, datetime.datetime.now().month) print 'initializing and populating US Census blocks' print 'this will *also* take a few minutes ...' shp = PlenarioShapeETL(plenario.settings.CENSUS_BLOCKS) shp.add()
def init_weather(): print 'initializing NOAA weather stations' s = WeatherStationsETL() s.initialize() print 'initializing NOAA daily and hourly weather observations for %s/%s' % (datetime.datetime.now().month, datetime.datetime.now().year) print 'this will take a few minutes ...' e = WeatherETL() e.initialize_month(datetime.datetime.now().year, datetime.datetime.now().month)
def init_weather(): print 'initializing NOAA weather stations' s = WeatherStationsETL() s.initialize() print 'initializing NOAA daily and hourly weather observations for %s/%s' % (datetime.datetime.now().month, datetime.datetime.now().year) print 'this will take a few minutes ...' e = WeatherETL() try: e.initialize_month(datetime.datetime.now().year, datetime.datetime.now().month) except Exception as e: session.rollback() raise e
def init(): """Initialize the database. """ # TODO(heyzoos) # Check for dependencies to fail fast and helpfully before running: # - postgresql-client base_uri = DATABASE_CONN.rsplit('/', 1)[0] base_engine = create_engine(base_uri) connection_attempts = 6 interval = 10 for connection_attempt in range(0, connection_attempts): try: create_database(base_engine, DB_NAME) break except ProgrammingError: logger.debug('[plenario] It already exists!') break except sqlalchemy.exc.OperationalError: logger.debug('[plenario] Database has not started yet.') sleep(interval) try: create_extension(plenario_engine, 'postgis') create_extension(plenario_engine, 'plv8') except ProgrammingError: logger.debug('[plenario] It already exists!') logger.debug('[plenario] Creating metadata tables') postgres_base.metadata.create_all() logger.debug('[plenario] Creating weather tables') WeatherStationsETL().make_station_table() WeatherETL().make_tables() # Set up custom functions, triggers and views in postgres psql('./plenario/dbscripts/sensor_tree.sql') psql('./plenario/dbscripts/point_from_location.sql') # Set up the default user if we are running in anything but production if os.environ.get('CONFIG') != 'prod': logger.debug('[plenario] Create default user') user = User(**DEFAULT_USER) try: postgres_session.add(user) postgres_session.commit() except IntegrityError: logger.debug('[plenario] Already exists!') postgres_session.rollback() # This will get celery to set up its meta tables try: health.delay() except OperationalError: logger.debug('[plenario] Redis is not running!')