Open Source Content Management Framework

Initializing Midgard environment in Python

  1. Initializing Midgard environment in Python

    Sat March 21 2009 12:39:55 UTC

    Hi, all

    If you ever want to write a Midgard-powered Python application that needs to use its own storage setup, here is how to initialize a full Midgard environment:

    # Import the Midgard API module
    import _midgard as midgard
    import os
    
    # Prepare a configuration file if one doesn't exist yet, see
    # http://www.midgard-project.org/documentation/unified-configuration/
    config_name = 'my_midgard_db'
    configuration = midgard.config()
    configuration.dbtype = 'SQLite'
    configuration.database = 'my_midgard_db'
    configuration.blobdir = os.path.join(os.path.expanduser("~"), "midgardblobs");
    configuration.loglevel = 'message'
    print "Saving configuration file " + config_name
    configuration.save_file(config_name)
    
    # Open a connection to the database defined in the configuration
    connection = midgard.connection()
    print "Opening configuration"
    connection.open_config(configuration)
    
    # Prepare storage tables
    
    # Midgard's internal tables
    print "Creating Midgard's internal database tables"
    configuration.create_midgard_tables()
    
    # Tables for all loaded MgdSchema types, see
    # http://www.midgard-project.org/documentation/mgdschema-file/
    for schema in dir(midgard.mgdschema):
        if schema.startswith('__'):
            continue
        if schema == 'midgard_object':
            continue
        print "Creating table for " + schema
        configuration.create_class_table(schema)
    
    # Prepare the storage directories for binary attachments
    print "Creating blob directory"
    configuration.create_blobdir()
    
    # ...And now your Midgard environment should be operational
    

    /Henri

    •  Reply
  2. Re: [midgard-user] Initializing Midgard environment in Python

    Tue March 24 2009 11:50:06 UTC
    Hi,

    On Sat, Mar 21, 2009 at 2:39 PM, Henri Bergius <henri.bergius@iki.fi> wrote:
    >    # http://www.midgard-project.org/documentation/unified-configuration/
    >    config_name = 'my_midgard_db'
    >    configuration = midgard.config()
    >    configuration.dbtype = 'SQLite'
    >    configuration.database = 'my_midgard_db'
    >    configuration.blobdir = os.path.join(os.path.expanduser("~"), "midgardblobs");
    >    configuration.loglevel = 'message'
    >    print "Saving configuration file " + config_name
    >    configuration.save_file(config_name)

    Major omission here:

    configuration.tablecreate = true

    Without this, Midgard will not be able to create the tables.

    --
    Henri Bergius
    Motorcycle Adventures and Free Software
    http://bergie.iki.fi/

    Skype: henribergius
    Jabber: henri.bergius@gmail.com
    Microblog: http://www.qaiku.com/home/bergie/
    Sent from: Rome Lazio Italy.
    _______________________________________________
    user mailing list
    user@lists.midgard-project.org
    http://lists.midgard-project.org/mailman/listinfo/user
    •  Reply
Designed by Nemein, hosted by Anykey