skip to navigation
skip to content

Not Logged In

collective.saconnect 1.4

A Plone control panel for SQL Alchemy connection strings

Introduction

This package provides a simple control panel and storage for SQLAlchemy connection strings. It presents a form where one can add and remove named connections, and a GS import and export step to manage these.

This package does not provide SQLAlchemy integration itself; use a library like zope.sqlalchemy or collective.lead instead.

Example usage:

from zope.app.component.hooks import getSite
from collective.saconnect.interfaces import ISQLAlchemyConnectionStrings

saconnect = ISQLAlchemyConnectionStrings(getSite())
myconnection = saconnect['myidentifier']

ISQLAlchemyConnectionStrings acts as a simple dictionary, although it's keys and values must be simple strings.

To import connection strings through GenericSetup, simply include a file named saconnections.xml in your profile, with a top-level 'connections' element and one 'connection' element per connection, with name and string attributes:

<?xml version="1.0"?>
<connections>
 <connection name="bar" string="sqlite:////path/to/bar.sqlite"/>
 <connection name="foo" string="oracle://username:password/tnsnamethere"/>
</connections>

To remove any of the connections, use the 'remove' attribute:

<?xml version="1.0"?>
<connections>
  <connection name="bar" remove=""/>
</connections>

If you cache your SQLAlchemy connections, you may want to listen for the IObjectModifiedEvent for ISQLAlchemyConnectionStrings; the event includes the key of the modified string, so you can easily refresh your database connections:

<subscriber
    handler=".mymodule.saconnectionUpdated"
    for="collective.saconnect.interfaces.ISQLAlchemyConnectionStrings
         zope.lifecycleevent.interfaces.IObjectModifiedEvent"
    />
def saconnectionUpdated(connections, event):
    if 'myconnectionstring' in event.descriptions:
        getUtility(IDatabase, u'myconnection').invalidate()

Credits

Development sponsored by
Elkjøp Nordic AS
Design and development
Martijn Pieters at Jarn

Changelog

1.4 - 2011-10-06

  • Include CMFCore's permissions.zcml under Plone 4, so the cmf.ManagePortal permission is known. [hannosch]
  • Fix typo that prevented z3c.saconfig support from ever being enabled. [elro]

1.3 - 2009-05-28

  • Update z3cform dependency to plone.app.z3cform, and add include it's configuration in configure.zcml. [mj]
  • Added optional support for z3c.saconfig connections; each connection string in collective.saconnect automatically is registered as a z3c.saconfig scoped session utility. [elro, mj]

1.2 - 2009-03-20

  • Fixed adding new entries after the editing fix. [mj]

1.1 - 2009-03-17

  • Fixed editing existing entries. [mj]

1.0 - 2009-03-17

  • Initial release [mj]
 
File Type Py Version Uploaded on Size
collective.saconnect-1.4.zip (md5) Source 2011-10-06 17KB
  • Downloads (All Versions):
  • 10 downloads in the last day
  • 255 downloads in the last week
  • 767 downloads in the last month