def setup_app(command, conf, vars):
    load_environment(conf.global_conf, conf.local_conf)

    # Create the tables if they don't already exist
    log.info("Creating tables...")
    Base.metadata.create_all(bind = Session.bind)
    log.info("Successfully set up.")

    if not os.path.exists(conf.global_conf["permanent_store"]):
        os.mkdir(conf.global_conf["permanent_store"])

    log.info("Adding front page data...")
    album = model.Album(id = 0, name = "root")
    Session.add(album)
    Session.commit()
    log.info("Successfully set up.")
def make_app(global_conf, full_stack=True, static_files=True, **app_conf):
	"""Create a Pylons WSGI application and return it

	``global_conf``
	    The inherited configuration for this application. Normally from
	    the [DEFAULT] section of the Paste ini file.

	``full_stack``
	    Whether this application provides a full WSGI stack (by default,
	    meaning it handles its own exceptions and errors). Disable
	    full_stack when this application is "managed" by another WSGI
	    middleware.

	``static_files``
	    Whether this application serves its own static files; disable
	    when another web server is responsible for serving them.

	``app_conf``
	    The application's local configuration. Normally specified in
	    the [app:<name>] section of the Paste ini file (where <name>
	    defaults to main).

	"""
	# Configure the Pylons environment
	config = load_environment(global_conf, app_conf)

	# The Pylons WSGI app
	app = PylonsApp(config = config)

	# Routing/Session/Cache Middleware
	app = RoutesMiddleware(app, config['routes.map'], singleton = False)
	app = SessionMiddleware(app, config)

    # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares)

	if asbool(full_stack):
		# Handle Python exceptions
		app = ErrorHandler(app, global_conf, **config['pylons.errorware'])

		# Display error documents for 401, 403, 404 status codes (and
		# 500 when debug is disabled)
		if asbool(config['debug']):
			app = StatusCodeRedirect(app)
		else:
			app = StatusCodeRedirect(app, [400, 401, 403, 404, 500])

	# Establish the Registry for this application
	app = RegistryManager(app)

	if asbool(static_files):
		# Serve static files
		static_app = StaticURLParser(config['pylons.paths']['static_files'])
		app = Cascade([static_app, app])
	app.config = config
	return app