Skip to main content

Stores configurations in a database instead of a file

Project description

Allows you to store configuration in an SQLAlchemy database instead of configuration files. The API is close, but not exactly like configparser and it plugs right into any application that is already using a declarative SQLAlchemy model:

# create a new model to hold the configuration items
class ConfigSetting(Base, ConfigSettingMixin):
    __tablename__ = 'configuration'

# instantiate the model with your session
config = Config(ConfigSetting, session)

# now config sections will work like a regular dict
config['section_foo']['bar'] = 123

# values will be json-encoded before being stored (this can be changed)
# to persist changes, simply commit the session
session.commit()

A full, minimal example is a bit more verbose due to the required initial setup:

from sqlacfg import ConfigSettingMixin, Config
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()
Session = sessionmaker()

class ConfigSetting(Base, ConfigSettingMixin):
    __tablename__ = 'configuration'


# for this demonstration, we just create the db in memory
eng = create_engine('sqlite:///:memory:', echo=True)
Base.metadata.create_all(eng)

session = sessionmaker(bind=eng)()

config = Config(ConfigSetting, session)

config['base']['foo'] = 'bar'
config['base']['baz'] = 'baz'

print dict(config['base'].iteritems())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlacfg-0.3.tar.gz (3.0 kB view details)

Uploaded Source

File details

Details for the file sqlacfg-0.3.tar.gz.

File metadata

  • Download URL: sqlacfg-0.3.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for sqlacfg-0.3.tar.gz
Algorithm Hash digest
SHA256 595e3a6610fe29d6c31958eac39485335b57ecf890b07a7339cb9a199b5dd712
MD5 6e10b230b213e1b591f7a16549a36a89
BLAKE2b-256 b5e2ab90c015d58a33836dd3d13e3ce6328e98c324a34fbabfd1ee5d01b1df28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page