]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
moving sqlite filename into named options
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 5 Nov 2005 21:38:05 +0000 (21:38 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 5 Nov 2005 21:38:05 +0000 (21:38 +0000)
doc/build/content/dbengine.myt
lib/sqlalchemy/databases/__init__.py
lib/sqlalchemy/databases/oracle.py
lib/sqlalchemy/databases/postgres.py
lib/sqlalchemy/databases/sqlite.py
lib/sqlalchemy/engine.py
test/engines.py
test/tables.py

index 411508452865ecd53a0ca54b075acc60470527e4..409dc48aea29f0d3a86cf8463fabadef7f831c6b 100644 (file)
     import sqlalchemy.engine as engine
 
     # sqlite in memory    
-    sqlite_engine = engine.create_engine('sqlite', ':memory:', {}, **opts)
+    sqlite_engine = engine.create_engine('sqlite', {'filename':':memory:'}, **opts)
     
     # sqlite using a file
-    sqlite_engine = engine.create_engine('sqlite', 'querytest.db', {}, **opts)
+    sqlite_engine = engine.create_engine('sqlite', {'filename':'querytest.db'}, **opts)
 
     # postgres
     postgres_engine = engine.create_engine('postgres', 
@@ -57,4 +57,4 @@
         <li>use_ansi=True : used only by Oracle;  when False, the Oracle driver attempts to support a particular "quirk" of some Oracle databases, that the LEFT OUTER JOIN SQL syntax is not supported, and the "Oracle join" syntax of using <% "<column1>(+)=<column2>" |h%> must be used in order to achieve a LEFT OUTER JOIN.  Its advised that the Oracle database be configured to have full ANSI support instead of using this feature.</li>
     </ul>
     </&>
-</&>
\ No newline at end of file
+</&>
index 34984e088ec5916e291c9f75fb016901b7c9a162..7f47fc4d2532672ca317dc65e1bba2444a2a5a1b 100644 (file)
@@ -16,3 +16,4 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 
+__ALL__ = ['oracle', 'postgres', 'sqlite']
\ No newline at end of file
index 696c59dda861fbcf9a43633b0efa0ed640e8c3b5..aa25ffec62965603523f8186b10c1ce890172d4a 100644 (file)
@@ -67,6 +67,15 @@ colspecs = {
 
 def engine(*args, **params):
     return OracleSQLEngine(*args, **params)
+
+def descriptor():
+    return {'name':'oracle',
+    'description':'Oracle',
+    'arguments':[
+        ('dsn', 'Data Source Name', None),
+        ('user', 'Username', None),
+        ('password', 'Password', None)
+    ]}
     
 class OracleSQLEngine(ansisql.ANSISQLEngine):
     def __init__(self, opts, use_ansi = True, module = None, **params):
index a3a84c742879d47078ad6407733e5bcaefc609fe..d38db22e48e7d6f5b1da28c313cb3d308026f06d 100644 (file)
@@ -114,6 +114,16 @@ gen_key_constraints = schema.Table("key_column_usage", generic_engine,
 def engine(opts, **params):
     return PGSQLEngine(opts, **params)
 
+def descriptor():
+    return {'name':'postgres',
+    'description':'PostGres',
+    'arguments':[
+        ('user',"Database Username",None),
+        ('password',"Database Password",None),
+        ('database',"Database Name",None),
+        ('host',"Hostname", None),
+    ]}
+
 class PGSQLEngine(ansisql.ANSISQLEngine):
     def __init__(self, opts, module = None, **params):
         if module is None:
index 453618fde82f7604406c1867a0ad9393ac8243cd..da993d9a520951bbb8b49bc968d5e72a763c39bc 100644 (file)
@@ -73,12 +73,19 @@ pragma_names = {
     'BLOB' : SLBinary,
 }
 
-def engine(filename, opts, **params):
-    return SQLiteSQLEngine(filename, opts, **params)
-
+def engine(opts, **params):
+    return SQLiteSQLEngine(opts, **params)
+
+def descriptor():
+    return {'name':'sqlite',
+    'description':'SQLite',
+    'arguments':[
+        ('filename', "Database Filename",None)
+    ]}
+    
 class SQLiteSQLEngine(ansisql.ANSISQLEngine):
-    def __init__(self, filename, opts, **params):
-        self.filename = filename
+    def __init__(self, opts, **params):
+        self.filename = opts.pop('filename')
         self.opts = opts or {}
         ansisql.ANSISQLEngine.__init__(self, **params)
 
index 6e96e9724301437be614b6b73b702a91da591b16..278836e35c1ff1852a61509b9786349642d3debc 100644 (file)
@@ -23,6 +23,7 @@ import sqlalchemy.util as util
 import sqlalchemy.sql as sql
 import StringIO, sys
 import sqlalchemy.types as types
+import sqlalchemy.databases
 
 def create_engine(name, *args ,**kwargs):
     """creates a new SQLEngine instance.
@@ -33,6 +34,13 @@ def create_engine(name, *args ,**kwargs):
     module = getattr(__import__('sqlalchemy.databases.%s' % name).databases, name)
     return module.engine(*args, **kwargs)
 
+def engine_descriptors():
+    result = []
+    for module in sqlalchemy.databases.__ALL__:
+        module = getattr(__import__('sqlalchemy.databases.%s' % module).databases, module)
+        result.append(module.descriptor())
+    return result
+    
 class SchemaIterator(schema.SchemaVisitor):
     """a visitor that can gather text into a buffer and execute the contents of the buffer."""
     def __init__(self, sqlproxy, **params):
index 0ffa97f954a6c5a9de13d9ec6fc45157e8d3c8b7..5f2ae8d646201c16c4ebf00af5ae33b9f7a35dc7 100644 (file)
@@ -16,7 +16,7 @@ import unittest, re
 
 class EngineTest(PersistTest):
     def testsqlite(self):
-        db = sqllite.engine(':memory:', {}, echo = testbase.echo)
+        db = sqllite.engine({'filename':':memory'}, echo = testbase.echo)
         self.do_tableops(db)
 
     def testpostgres(self):
index 595195780860f77004918c2286ea5d6db0c3c736..b1a241fa4c07114acc447bbd3fab3446a0e04e82 100644 (file)
@@ -15,10 +15,10 @@ DBTYPE = 'sqlite_memory'
 #DBTYPE = 'sqlite_file'
 
 if DBTYPE == 'sqlite_memory':
-    db = sqlalchemy.engine.create_engine('sqlite', ':memory:', {}, echo = testbase.echo)
+    db = sqlalchemy.engine.create_engine('sqlite', {'filename':':memory:'}, echo = testbase.echo)
 elif DBTYPE == 'sqlite_file':
     import sqlalchemy.databases.sqlite as sqllite
-    db = sqlalchemy.engine.create_engine('sqlite', 'querytest.db', {}, echo = testbase.echo)
+    db = sqlalchemy.engine.create_engine('sqlite', {'filename':'querytest.db'}, echo = testbase.echo)
 elif DBTYPE == 'postgres':
     db = sqlalchemy.engine.create_engine('postgres', {'database':'test', 'host':'127.0.0.1', 'user':'scott', 'password':'tiger'}, echo=testbase.echo)