I tried this code.

There are two objects in it.
The second is just a new created one to check if everything goes right.
It appears in the sqlite database.
The first object is from the "old" PostgreSQL database. But it doesn't
appear in the new sqlite database. There even is no error output and
now sql-echo-output about that object. Nothing happens when I try to
add() it. The table schemes are created fine.

What could there go on?

[code]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import model as m
import sqlalchemy as sa
import sqlalchemy.orm as sao
from sqlalchemy_utils import create_database

pstr = 'postgres://puser@localhost/Foobar'
sstr = 'sqlite:///foobar.db'

def convert():
    # get one object from the PostgreSQL database
    pengine = sa.create_engine(pstr, echo = True)
    psession = sao.sessionmaker(bind = pengine)()
    pobj = psession.query(m.Machine).first()
    psession.expunge(pobj)
    psession.close()

    # create and open the SQLite database
    sengine = sa.create_engine(sstr, echo = True)
    create_database(sengine.url)
    m._Base.metadata.create_all(sengine)

    # add/convert the one object to the new database
    ssession = sao.sessionmaker(bind = sengine)()
    ssession.add(pobj)

    # add a new created object to the new database
    nobj = m.Machine(code='X', name='Mr. X', note='bähm')
    ssession.add(nobj)
    ssession.commit()

if __name__ == '__main__':
    convert()
[/code]

Would you like to see the SQL-output? Beside the table "Machine" there
are two other tables in it - just ignore them.
[sql]
2015-07-09 00:24:45,088 INFO sqlalchemy.engine.base.Engine select
version() 2015-07-09 00:24:45,089 INFO sqlalchemy.engine.base.Engine {}
2015-07-09 00:24:45,096 INFO sqlalchemy.engine.base.Engine select
current_schema() 2015-07-09 00:24:45,097 INFO
sqlalchemy.engine.base.Engine {} 2015-07-09 00:24:45,102 INFO
sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS
VARCHAR(60)) AS anon_1 2015-07-09 00:24:45,102 INFO
sqlalchemy.engine.base.Engine {} 2015-07-09 00:24:45,107 INFO
sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS
VARCHAR(60)) AS anon_1 2015-07-09 00:24:45,107 INFO
sqlalchemy.engine.base.Engine {} 2015-07-09 00:24:45,110 INFO
sqlalchemy.engine.base.Engine show standard_conforming_strings
2015-07-09 00:24:45,111 INFO sqlalchemy.engine.base.Engine {}
2015-07-09 00:24:45,119 INFO sqlalchemy.engine.base.Engine BEGIN
(implicit) 2015-07-09 00:24:45,124 INFO sqlalchemy.engine.base.Engine
SELECT "Machine".oid AS "Machine_oid", "Machine".code AS
"Machine_code", "Machine".name AS "Machine_name", "Machine".note AS
"Machine_note" FROM "Machine" LIMIT %(param_1)s 2015-07-09 00:24:45,125
INFO sqlalchemy.engine.base.Engine {'param_1': 1} 2015-07-09
00:24:45,185 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain
returns' AS VARCHAR(60)) AS anon_1 2015-07-09 00:24:45,186 INFO
sqlalchemy.engine.base.Engine () 2015-07-09 00:24:45,188 INFO
sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS
VARCHAR(60)) AS anon_1 2015-07-09 00:24:45,189 INFO
sqlalchemy.engine.base.Engine () 2015-07-09 00:24:45,191 INFO
sqlalchemy.engine.base.Engine PRAGMA table_info("PersonalParameter")
2015-07-09 00:24:45,192 INFO sqlalchemy.engine.base.Engine ()
2015-07-09 00:24:45,194 INFO sqlalchemy.engine.base.Engine PRAGMA
table_info("Machine") 2015-07-09 00:24:45,195 INFO
sqlalchemy.engine.base.Engine () 2015-07-09 00:24:45,196 INFO
sqlalchemy.engine.base.Engine PRAGMA table_info("TrainingUnit")
2015-07-09 00:24:45,197 INFO sqlalchemy.engine.base.Engine ()
2015-07-09 00:24:45,203 INFO sqlalchemy.engine.base.Engine CREATE TABLE
"PersonalParameter" ( oid INTEGER NOT NULL, date DATE, weight
NUMERIC(10, 2), PRIMARY KEY (oid) )


2015-07-09 00:24:45,204 INFO sqlalchemy.engine.base.Engine ()
2015-07-09 00:24:45,377 INFO sqlalchemy.engine.base.Engine COMMIT
2015-07-09 00:24:45,381 INFO sqlalchemy.engine.base.Engine 
CREATE TABLE "Machine" (
        oid INTEGER NOT NULL, 
        code VARCHAR, 
        name VARCHAR, 
        note VARCHAR, 
        PRIMARY KEY (oid)
)


2015-07-09 00:24:45,388 INFO sqlalchemy.engine.base.Engine ()
2015-07-09 00:24:45,567 INFO sqlalchemy.engine.base.Engine COMMIT
2015-07-09 00:24:45,572 INFO sqlalchemy.engine.base.Engine 
CREATE TABLE "TrainingUnit" (
        oid INTEGER NOT NULL, 
        "order" INTEGER, 
        date DATE, 
        level INTEGER, 
        sets INTEGER, 
        repetitions INTEGER, 
        machine INTEGER, 
        PRIMARY KEY (oid), 
        FOREIGN KEY(machine) REFERENCES "Machine" (oid)
)


2015-07-09 00:24:45,584 INFO sqlalchemy.engine.base.Engine ()
2015-07-09 00:24:45,777 INFO sqlalchemy.engine.base.Engine COMMIT
2015-07-09 00:24:45,785 INFO sqlalchemy.engine.base.Engine BEGIN
(implicit) 2015-07-09 00:24:45,793 INFO sqlalchemy.engine.base.Engine
INSERT INTO "Machine" (code, name, note) VALUES (?, ?, ?) 2015-07-09
00:24:45,795 INFO sqlalchemy.engine.base.Engine ('X', 'Mr. X', 'bähm')
2015-07-09 00:24:45,802 INFO sqlalchemy.engine.base.Engine COMMIT
2015-07-09 00:24:45,988 INFO sqlalchemy.engine.base.Engine ROLLBACK
[/sql]

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to