Dependent Origination

How to create tables with sqlalchemy

Posted on: January 15, 2014

There are two ways to create tables with sqlalchemy.

1. create the tables yourself, examples are in their Expression Language tutorial. needless to say this means your schema is explict, and separate from the code, which means code changes won’t propagate themselves easily to a new database.

>>> from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
>>> metadata = MetaData()
>>> users = Table('users', metadata,
...     Column('id', Integer, primary_key=True),
...     Column('name', String),
...     Column('fullname', String),
... )

>>> addresses = Table('addresses', metadata,
...   Column('id', Integer, primary_key=True),
...   Column('user_id', None, ForeignKey('users.id')),
...   Column('email_address', String, nullable=False)
...  )
>>> metadata.create_all(engine)

2. if you already have code that defines the classes so that they are already interacting with the database, you can use the following steps. See this tutorial on ORM for details.

Base = declarative_base()

class definitions (they should inherit from Base)

engine = sqlalchemy.create_engine(“postgresql+psycopg2://user:pass@localhost:port/db”)

Base.metadata.create_all(engine)

See more details on configuring the engine.

3. table reflection (you can directly export the table schemas from a database to a new one), haven’t found real examples yet.

This stackflow question (and answer) is useful. This one talks about how to create the database with sqlalchemy if the database isn’t there. Note if the database is not present your get_engine code will fail.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

January 2014
M T W T F S S
« Dec   Feb »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Twitter

  • is having a nice feeling of connecting dots all over the place. they are now illuminating the same point. 1 day ago
  • Style Transfer is fun! TensorFlow rocks! #WTM17 https://t.co/zYP0IFIDfp 1 month ago
  • couldn't get over the jetlag, sleeping during the day from seven to four, for days. 3 months ago
  • is emptying trash and happily discovering the available disk space now ranks at 100G+. 4 months ago
  • is looking at other people's intentions, not their capabilities, and feeling much happier every day :) 1 year ago

Flickr Photos

IMG_3517

IMG_3515

IMG_3505

IMG_3497

IMG_3261

IMG_3260

IMG_3255

IMG_2736

IMG_2733

IMG_2629

More Photos
%d bloggers like this: