PApp database requirenments PApp itself is, in general, database-independent. This means that applications in general are free to use any database they want, as long as there exists a DBI driver for them. PApp itself also needs a database for administration purposes. Since ANSI-SQL is not complete with regards to many operations (like unique column ids) and most databases do not really implement SQL fully, PApp uses some extensions to SQL: PApp core: PApp itself does not create databases or tables, you must do this yourself. The papp-install script tries to create the necessary database and tables, but this extension to DBI is currently only supported by very few databases (e.g. MySQL), so you have to either use mysql for papp itself or read the table definitions and create corersponding tables yourself. Pre-made configs for various databases are on their way. A special note is required for the state, user and pkg tables: These tables store raw binary data in the state/prefs field respectively. Both of these are usually smaller than 4k (this depends mainly on the size of the state and user preferences you need), so most databases can use TEXT/BLOB/IMAGE fields for them. PApp will not try to "update" the state field, but it will try to update the "prefs" field which is a problem for some databases. PApp requires the sql_insertid function, so have a look at the additional requirements of PApp::SQL below. PApp::DataRef: PApp::DataRef uses "harmless" select and update statements to read/write existing table rows. When creating new rows and insertid is "1", it will insert the row with the primary key set to NULL and expect it to create a new row and therefore requires PApp::SQL::sql_insertid. This is fortunately a common exension. PApp::SQL: PApp::SQL offers a function named sql_insertid that should return the id of the primary key that was created for the last select that had a NULL value for the key. Implementations for MySQL, Postgres, Sybase, Informix and SQLite already exist, you might want to add your own implementation to make PApp::DataRef and the core work. If you need an adaption for your database please contact papp-porting@nethype.de for availability.