Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sqlalchemy connect to server, with not specify database

Is it possible to connect to MSSQL server, using sqlalchemy and thencreate a database?

I use the following:

sqlalchemy.create_engine("mssql+pyodbc://sa:pwd@localhost/")

But I get an error:

Detail DBAPIError: (Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') None None

I would like to connect to the server, then create database and work with it.

like image 488
Eugene Avatar asked Jul 30 '13 07:07

Eugene


People also ask

Can you use SQLAlchemy with SQL Server?

SQLAlchemy supports these syntaxes automatically if SQL Server 2012 or greater is detected. Changed in version 1.4: support added for SQL Server “OFFSET n ROWS” and “FETCH NEXT n ROWS” syntax.

What does SQLAlchemy Create_engine do?

The Engine is the starting point for any SQLAlchemy application. It's “home base” for the actual database and its DBAPI, delivered to the SQLAlchemy application through a connection pool and a Dialect , which describes how to talk to a specific kind of database/DBAPI combination.


1 Answers

Give it a try:

import urllib

connection_string = "DRIVER={SQL Server};SERVER=localhost;UID=sa;PWD=pwd"
connection_string = urllib.quote_plus(connection_string) 
connection_string = "mssql+pyodbc:///?odbc_connect=%s" % connection_string

engine = sqlalchemy.create_engine(connection_string)
connection = engine.connect()
connection.execute("create database test")
connection.close()

Part of the code was taken from this answer.

Hope that helps.

like image 81
alecxe Avatar answered Sep 20 '22 15:09

alecxe