def dbSetup(): """ create tables in the PostgreSQL database""" commands = (""" CREATE TABLE vendors ( vendor_id SERIAL PRIMARY KEY, vendor_name VARCHAR(255) NOT NULL ) """, """ CREATE TABLE parts ( part_id SERIAL PRIMARY KEY, part_name VARCHAR(255) NOT NULL ) """, """ CREATE TABLE part_drawings ( part_id INTEGER PRIMARY KEY, file_extension VARCHAR(5) NOT NULL, drawing_data BYTEA NOT NULL, FOREIGN KEY (part_id) REFERENCES parts (part_id) ON UPDATE CASCADE ON DELETE CASCADE ) """, """ CREATE TABLE vendor_parts ( vendor_id INTEGER NOT NULL, part_id INTEGER NOT NULL, PRIMARY KEY (vendor_id , part_id), FOREIGN KEY (vendor_id) REFERENCES vendors (vendor_id) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (part_id) REFERENCES parts (part_id) ON UPDATE CASCADE ON DELETE CASCADE ) """) conn = None try: # read the connection parameters params = config() # connect to the PostgreSQL server conn = psycopg2.connect(**params) cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) # create table one by one for command in commands: cur.execute(command) # close communication with the PostgreSQL database server cur.close() # commit the changes conn.commit() except (Exception, psycopg2.DatabaseError) as error: print(error) finally: if conn is not None: conn.close()
"OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ] }, }] WSGI_APPLICATION = "wsgi.application" # Database # https://docs.djangoproject.com/en/1.9/ref/settings/#databases DATABASES = {"default": database.config()} OPTIMIZE_TABLE_ROW_COUNTS = parse_bool( os.getenv("OPTIMIZE_TABLE_ROW_COUNTS", "True")) # Password validation # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator" }, { "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator"
'django.core.context_processors.media', 'django.core.context_processors.csrf', 'django.core.context_processors.tz', 'sekizai.context_processors.sekizai', 'django.core.context_processors.static', 'cms.context_processors.cms_settings', ] }, }, ] WSGI_APPLICATION = 'project.wsgi.application' import database DATABASES = { 'default': database.config(), } MIGRATION_MODULES = { } THUMBNAIL_PROCESSORS = ( 'easy_thumbnails.processors.colorspace', 'easy_thumbnails.processors.autocrop', 'filer.thumbnail_processors.scale_and_crop_with_subject_location', 'easy_thumbnails.processors.filters' ) LANGUAGES = (
# coding=utf-8 import backend_common.env as common_env import database import welink_sms import weixin import qiniu # 环境变量 mode = common_env.APP_MODE # 数据库配置 database = database.config(mode) # welink短信配置 welink_sms = welink_sms.config(mode) # 微信配置 weixin = weixin.config(mode) # 七牛配置 qiniu = qiniu.config(mode)
'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'wsgi.application' # Database # https://docs.djangoproject.com/en/1.9/ref/settings/#databases DATABASES = {'default': database.config()} # Password validation # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME':
}, ] WSGI_APPLICATION = 'wsgi.application' TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' # Database # https://docs.djangoproject.com/en/1.8/ref/settings/#databases try: from . import database except: import database DATABASES = { 'default': database.config() } AMQP = amqp.config() AMQP_CONNECTION_PARAMETERS = ConnectionParameters( host=AMQP['HOST'], port=AMQP['PORT'], virtual_host=AMQP['VHOST'], credentials=PlainCredentials(AMQP['USER'], AMQP['PASSWORD']) ) KEYCLOAK = keycloak.config() EMAIL = email.config()