Thread: [SQLObject] SQLObject articles & apps
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Ian B. <ia...@co...> - 2005-08-01 05:17:31
|
Along with 0.7, I'm redoing the SQLObject site. I'm creating a page with links to articles and open source applications/libraries that use SQLObject. There's a buttload of blog posts, but not that many articles... Anyway, if you have or know of an article or document on SQLObject, or an app/library that uses SQLObject, please email me with a link so I can include it. So far I have sqlos, Subway, Nabu, and Ultra Gleeper for apps. For documents I just have something from Canonical, and one wiki page on CherryPy. -- Ian Bicking / ia...@co... / http://blog.ianbicking.org |
From: Frank B. <fb...@fo...> - 2005-08-01 06:38:20
|
Hallo, Ian Bicking hat gesagt: // Ian Bicking wrote: > Anyway, if you have or know of an article or document on SQLObject, or > an app/library that uses SQLObject, please email me with a link so I can > include it. So far I have sqlos, Subway, Nabu, and Ultra Gleeper for > apps. If you want, you can add my app "Teeny TinyCMS". Homepage/README currently is http://footils.org/cms/show/3 and it's available for download in the webware-sandbox.sf.net It's a very small CMS or Blog using SQLObject for storage of everything. It's running my site. Ciao -- Frank Barknecht _ ______footils.org__ _ __latest track: "plak" @ http://footils.org/cms/show/44 |
From: Ksenia M. <kse...@gm...> - 2005-08-01 07:01:32
|
2005/8/1, Ian Bicking <ia...@co...>: > Along with 0.7, I'm redoing the SQLObject site. =20 If the new site will still contain comparison to other ORM's, it might be interesting to include comparison with Django's ORM too (http://www.djangoproject.com/documentation/model_api/) --=20 Ksenia |
From: Ian B. <ia...@co...> - 2005-08-01 07:33:15
|
Ksenia Marasanova wrote: > 2005/8/1, Ian Bicking <ia...@co...>: > >>Along with 0.7, I'm redoing the SQLObject site. > > > If the new site will still contain comparison to other ORM's, it might > be interesting to include comparison with Django's ORM too > (http://www.djangoproject.com/documentation/model_api/) I wasn't planning on writing such a comparison, but if someone wants to write something (maybe a little more in-depth than a blog post, but not necessarily a lot more) I'll certainly link to it. -- Ian Bicking / ia...@co... / http://blog.ianbicking.org |
From: Sidnei da S. <si...@en...> - 2005-08-01 14:20:38
|
On Mon, Aug 01, 2005 at 12:20:39AM -0500, Ian Bicking wrote: | Along with 0.7, I'm redoing the SQLObject site. I'm creating a page | with links to articles and open source applications/libraries that use | SQLObject. There's a buttload of blog posts, but not that many articles... | | Anyway, if you have or know of an article or document on SQLObject, or | an app/library that uses SQLObject, please email me with a link so I can | include it. So far I have sqlos, Subway, Nabu, and Ultra Gleeper for | apps. For documents I just have something from Canonical, and one wiki | page on CherryPy. I've contributed a SQLObject backend to rdflib, which was included in rdflib-2.1.2 [1]. Enfold Systems is working on 'EnTransit' [2], a deployment system for Zope that uses rdflib and sqlobject to store content outside Zope transactionally and incrementally as a combination of xml, rdf and sql. [1] http://rdflib.net/ [2] http://www.enfoldsystems.com/About/Talks/entransit-tutorial.pdf -- Sidnei da Silva Enfold Systems, LLC. http://enfoldsystems.com |
From: Philippe N. <ph...@ba...> - 2005-08-02 08:48:30
|
Le lundi 01 ao=FBt 2005 =E0 00:20 -0500, Ian Bicking a =E9crit : > Along with 0.7, I'm redoing the SQLObject site. I'm creating a page=20 > with links to articles and open source applications/libraries that use=20 > SQLObject. There's a buttload of blog posts, but not that many article= s... >=20 Here is one article at ibm.com: http://www-128.ibm.com/developerworks/library/os-pythonsqlo/index.html?ca= =3Ddrs- Philippe |
From: Evandro V. M. <ev...@as...> - 2005-08-03 13:13:56
|
Ian Bicking wrote: > Along with 0.7, I'm redoing the SQLObject site. I'm creating a page > with links to articles and open source applications/libraries that use > SQLObject. There's a buttload of blog posts, but not that many articles... > > Anyway, if you have or know of an article or document on SQLObject, or > an app/library that uses SQLObject, please email me with a link so I can > include it. So far I have sqlos, Subway, Nabu, and Ultra Gleeper for > apps. For documents I just have something from Canonical, and one wiki > page on CherryPy. I'm working on a retail system project, here in Brazil, called Stoq which uses SQLObject. For now we only have a Portuguese wiki page in http://www.async.com.br/projects/stoq/wiki/, and soon we will planning to have a webpage version in English and Portuguese. -- Evandro Vale Miquelito : ev...@as... Async Open Source - Brazil | http://www.async.com.br |
From: Evandro V. M. <ev...@as...> - 2005-08-03 14:42:09
|
Hi Oleg, Hi all ! Some months ago I sent a message with subject "Trouble trying to join objects of different transactions" and now I think I didn't explain my problem properly. This week a friend of mine told me that should exists in SQLObject a way to save points in transactions which could allow synchronizations between them. Look that: __connection__ = connectionForURI(conn) __connection__.autoCommit = False t1 = conn.transaction() t2 = conn.transaction() sale = Sale(open_date=today(), connection=t1) product = Product(sale=sale, quantity=2.0, connection=t1) customer = Customer(name='John Wayne', age=24, connection=t2) t2.commit() # I would like to bring this customer to t1 but it's not possible # because since I changed some data in t1 this transactions is isolated # and can't see anything until I call commit or rollback. # Ups !!! It Doesn't work. when calling commit t1 doesn't know customer # id. sale.customer = customer # the lines above doesn't work too because t1 doesn't see my customer # yet. customer = Customer.get(customer.id, connection=t1) sale.customer = customer Ok, If we had such a way to define a save point we could synchronize t1 with the last version of database and the last two lines of code would work pretty well. In this case we will also need a behaviour like lazy updates, never sending database requests until I called commit. I think this behavior should work for updates and inserts. Of course that there is also some important issues to consider: 1- Synchronizing transactions could result in conflicts for objects of the same id which has been changed by many users. In this case we should also create an easy way to deal with this problem, propably informing which object column is outdated or overwriting it or raising a special exception. 2- We should propably define explicitily when we want to use save points for transactions. 3- We could be able to synchronize transactions any time we want until we commit. 4- We will need to synchronize transactions when commiting(I think it works right now, is not it ?) Another idea that I'm implementing here is write some routines which allow us to copy the state of SQLObject tables in non-persistent special objects(or volatile objects). After create these volatile objects we just have to save all the data on them and after that call a "ensure" method which will create the SQLObject objects and commit the data. Some problems using this approach: 1- The API for volatile objets is complex 2- Using volatile objects is the same of implementing a parallel transaction system for non-persistent data. 3- Manipulate foreing keys with volatile objects is not trivial and for now the best solution I could find is deal with them manually, creating foreign volatile objects and associating them with others. Thanks for any help. -- Evandro Vale Miquelito : ev...@as... Async Open Source - Brazil | http://www.async.com.br |
From: Oleg B. <ph...@ma...> - 2005-08-03 14:58:01
|
On Wed, Aug 03, 2005 at 11:41:49AM -0300, Evandro Vale Miquelito wrote: > a way to save points in transactions which could allow > synchronizations between them. Why? What for? Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Evandro V. M. <ev...@as...> - 2005-08-03 15:31:02
|
Oleg Broytmann wrote: > On Wed, Aug 03, 2005 at 11:41:49AM -0300, Evandro Vale Miquelito wrote: > >>a way to save points in transactions which could allow >>synchronizations between them. > > > Why? What for? I think it was explained in my example. After create a customer in transaction2 and commit I can't bring it back to transaction1, where I'm creating a new sale object. In this case I need two transactions because the customer must be commited independently and I can't save my sale object whithout validate all data, and associate a customer with it too. What I need here is a way to say: SQLObject please, turn off database requests and just syncronize my current transaction with the latest version of database when I want it. Understand that lazyUpdates doesn't help me on it. Look at another example below: import datetime from sqlobject import * __connection__ = connectionForURI('a postgres connection string') __connection__.autoCommit = False __connection__.debug = False t = __connection__.transaction() class Customer(SQLObject): name = StringCol() class Sale(SQLObject): open_date = DateTimeCol() customer = ForeignKey('Customer', default=None) Customer.dropTable(ifExists=True, cascade=True, connection=t) Customer.createTable(connection=t) Customer.sqlmeta.lazyUpdate = True Sale.dropTable(ifExists=True, cascade=True, connection=t) Sale.createTable(connection=t) Sale.sqlmeta.lazyUpdate = True t.commit() t2 = __connection__.transaction() t3 = __connection__.transaction() sale = Sale(open_date=datetime.datetime.today(), connection=t2) customer = Customer(name='John Wayne', connection=t3) t3.commit() # Using lazyUpdates things seens to be working but take a look on the assert # bellow. sale.customer = customer # It doesn't work. I can't lookup customer created in t3 to t2. # sale.customer = Customer.get(customer.id, connection=t2) t2.commit() saved_sale = Sale.get(sale.id, connection=t) assert saved_sale.customer -- Evandro Vale Miquelito : ev...@as... Async Open Source - Brazil | http://www.async.com.br |
From: Brett <bre...@gm...> - 2005-08-03 13:22:14
|
Ian Bicking wrote: > Along with 0.7, I'm redoing the SQLObject site. I'm creating a page > with links to articles and open source applications/libraries that use > SQLObject. There's a buttload of blog posts, but not that many articles... > > Anyway, if you have or know of an article or document on SQLObject, or > an app/library that uses SQLObject, please email me with a link so I can > include it. So far I have sqlos, Subway, Nabu, and Ultra Gleeper for > apps. For documents I just have something from Canonical, and one wiki > page on CherryPy. > I'm using SQLObject in my project at http://bauble.belizebotanic.org. I'm just getting ready for the first release. |
From: Brian B. <ex...@gm...> - 2005-08-03 17:57:30
|
Ian Bicking wrote: > Along with 0.7, I'm redoing the SQLObject site. I'm creating a page > with links to articles and open source applications/libraries that use > SQLObject. There's a buttload of blog posts, but not that many articles... > > Anyway, if you have or know of an article or document on SQLObject, or > an app/library that uses SQLObject, please email me with a link so I can > include it. So far I have sqlos, Subway, Nabu, and Ultra Gleeper for > apps. For documents I just have something from Canonical, and one wiki > page on CherryPy. What this project really needs is a Best Practices page that is kept up-to-date. It should go over details like: * If your classes have many complex methods other than attribute access, is it better (safer, faster, etc.) to add more features to your SQLObject-derived classes, or to wrap them in another class (with less exposed). * If I have a method that relies on attributes, should I put the values I will use in a local variable first time I access them? Do multiple accesses in a single method trigger multiple hits to the database? Example: If I have a bunch of expressions that use self.title (a column), should I do 'title = self.title' at the top of the method, or is there no performance hit for repeated self.title lookups? * A single, clear section dedicated to concurrency issues like transactions and threading. It should suggest proper precautions to take when using SQLObject for different purposes like web applications, etc. Right now the Wiki links concerning such issues are mostly inconclusive discussions. Stuff like that. -- Brian Beck Adventurer of the First Order |