Skip to main content

A Plone control panel for SQL Alchemy connection strings

Project description

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]

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

collective.saconnect-1.4.zip (17.8 kB view details)

Uploaded Source

File details

Details for the file collective.saconnect-1.4.zip.

File metadata

File hashes

Hashes for collective.saconnect-1.4.zip
Algorithm Hash digest
SHA256 db1683cd437a7f387c3c967599a71177a08b03c4db1bb6c19484d145f9edbd17
MD5 2895c35547903ebc2ed83c5b4033a787
BLAKE2b-256 f136db6766e9d8a54f82d41a08086fbc1868cdb709228fd96d6fffcb726a6c75

See more details on using hashes here.

Provenance

Supported by

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