Plone: ​​передача строки соединения в zmysqlda из внешнего файла - PullRequest
1 голос
/ 16 февраля 2012

Я подключаюсь к базе данных в Mysql из Plone (Zope), используя коннектор ZMySQLDA, в котором требуется строка подключения в формате базы данных, имя пользователя passwd.
Но мне нужно, чтобы строка подключения была передана из внешнего файла, чтобы я мог изменитьэто из внешнего файла без изменения объекта соединения из интерфейса управления zope.
Возможно ли это?
Любая помощь или указатели приветствуются.

1 Ответ

1 голос
/ 16 февраля 2012

не легко.

Вы не говорите, как именно вам нужно получить строку подключения для хранения в файловой системе: если единственным ограничением является то, что ей нужно быть в файловой системе, то это то, что z3c.saconfig для. Он получает конфигурацию из zcml, например:

<configure xmlns="http://namespaces.zope.org/db">
  <include package="z3c.saconfig" file="meta.zcml"/>
  <engine name="otn"  url="postgresql://otnplone@${buildout:dbhost}/otnunit" />
  <session name="pas.plugins.sqlalchemy" engine="otn" />  
</configure>

Но z3c.saconfig предназначен для SQLAlchemy, и вам нужно будет переключиться с ZMySQLDA на SQLAlchemyDA, и даже тогда это не будет автоматическим. Если вы готовы сделать это, я, вероятно, могу помочь вам с остальными.

Насколько я вижу, ZMySQLDA является устаревшим адаптером (на самом деле, я не вижу много людей, использующих DA Zope вообще, но по крайней мере SQLAlchemyDA работает с SQLAlchemy, который очень хорошо поддерживается).

ЕСЛИ вы используете z3c.saconfig, то вы можете поддерживать строки подключения с Colour.s.sononnect (больше не в файле, а в панели управления Plone, а не в ZMI), и тогда вы сможете иметь адаптер восстановить соединения при изменении строки подключения. Простое использование z3c.saconfig не позволит вам сделать это.

Я не вижу простого способа заставить объект файловой системы изменить строку подключения. По крайней мере, вам нужно перейти к некоторому представлению после изменения файла, чтобы применить изменения.

...