server/sources/native.py
changeset 5423 e15abfdcce38
parent 5397 cdbf823450aa
parent 5421 8167de96c523
child 5426 0d4853a6e5ee
equal deleted inserted replaced
5412:27249e3fee3d 5423:e15abfdcce38
       
     1 # copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
       
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
       
     3 #
       
     4 # This file is part of CubicWeb.
       
     5 #
       
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
       
     7 # terms of the GNU Lesser General Public License as published by the Free
       
     8 # Software Foundation, either version 2.1 of the License, or (at your option)
       
     9 # any later version.
       
    10 #
       
    11 # logilab-common is distributed in the hope that it will be useful, but WITHOUT
       
    12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
       
    13 # FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
       
    14 # details.
       
    15 #
       
    16 # You should have received a copy of the GNU Lesser General Public License along
       
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
     1 """Adapters for native cubicweb sources.
    18 """Adapters for native cubicweb sources.
     2 
    19 
     3 Notes:
    20 Notes:
     4 * extid (aka external id, the primary key of an entity in the external source
    21 * extid (aka external id, the primary key of an entity in the external source
     5   from which it comes from) are stored in a varchar column encoded as a base64
    22   from which it comes from) are stored in a varchar column encoded as a base64
     6   string. This is because it should actually be Bytes but we want an index on
    23   string. This is because it should actually be Bytes but we want an index on
     7   it for fast querying.
    24   it for fast querying.
     8 
    25 
     9 :organization: Logilab
       
    10 :copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
       
    11 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
       
    12 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
       
    13 """
    26 """
    14 from __future__ import with_statement
    27 from __future__ import with_statement
    15 
    28 
    16 __docformat__ = "restructuredtext en"
    29 __docformat__ = "restructuredtext en"
    17 
    30 
   175     sqlgen_class = SQLGenerator
   188     sqlgen_class = SQLGenerator
   176     options = (
   189     options = (
   177         ('db-driver',
   190         ('db-driver',
   178          {'type' : 'string',
   191          {'type' : 'string',
   179           'default': 'postgres',
   192           'default': 'postgres',
   180           'help': 'database driver (postgres or sqlite)',
   193           # XXX use choice type
       
   194           'help': 'database driver (postgres, mysql, sqlite, sqlserver2005)',
   181           'group': 'native-source', 'level': 1,
   195           'group': 'native-source', 'level': 1,
   182           }),
   196           }),
   183         ('db-host',
   197         ('db-host',
   184          {'type' : 'string',
   198          {'type' : 'string',
   185           'default': '',
   199           'default': '',
   213         ('db-encoding',
   227         ('db-encoding',
   214          {'type' : 'string',
   228          {'type' : 'string',
   215           'default': 'utf8',
   229           'default': 'utf8',
   216           'help': 'database encoding',
   230           'help': 'database encoding',
   217           'group': 'native-source', 'level': 1,
   231           'group': 'native-source', 'level': 1,
       
   232           }),
       
   233         ('db-extra-arguments',
       
   234          {'type' : 'string',
       
   235           'default': '',
       
   236           'help': 'set to "Trusted_Connection" if you are using SQLServer and '
       
   237                   'want trusted authentication for the database connection',
       
   238           'group': 'native-source', 'inputlevel': 2,
   218           }),
   239           }),
   219     )
   240     )
   220 
   241 
   221     def __init__(self, repo, appschema, source_config, *args, **kwargs):
   242     def __init__(self, repo, appschema, source_config, *args, **kwargs):
   222         SQLAdapterMixIn.__init__(self, source_config)
   243         SQLAdapterMixIn.__init__(self, source_config)