-
Notifications
You must be signed in to change notification settings - Fork 17
Home
This set of frameworks and test applications provides a kit of frameworks and tools for deploying the PostgreSQL database on the Mac OS X operating system and on iOS. For more information on PostgreSQL see: http://www.postgresql.org/.
The code provided will compile to the following products:
-
PGServerKit provides an emdedded PostgreSQL database which runs locally in user-space. You can start and stop the database programatically, edit access control, configuration and perform data backups of the database. This database could be used if you want to provide a persistent data store in your application which is "beefier" than using SQLite, for example.
-
PGClientKit provides an embedded client library, which is simply an interface to the normal postgres "libpq" library, for Mac and iOS. It translates many PostgreSQL types to and from native Foundation types (NSString, NSNumber, etc) and a way to extend to support more types.
-
PGSchemaKit is a framework for managing database schemas. You can include this framework in your applications, and have your database schema definitions automatically install, upgrade and be deleted when necessary. It also includes technology to allow you to be notified when rows within tables are inserted, updated and deleted.
-
PGServer is a user-space server application which allows you to configure, run, administer and monitor a PostgresSQL server. It's purely an example of using PGServerKit and PGClientKit, since running a postgresql server in user-space isn't necessarily the best approach.
-
PGClient is a user-space client application which allows you to administer and use a remote PostgreSQL server. Again, it's an example of using PGClientKit to connect to remote databases. There are variants of PGClientKit for Mac and iOS.
-
PGSchemaManager is a client-application to manage schemas in your databases, demonstrating the use of PGSchemaKit. Given a set of schema product files, it will create, update and drop schemas and data, and satisfy schema dependencies.
#Screenshots!
Here is a screenshot of the PGServer application, after the initialization of a new database server:
Here is the PGServer configuration screen:
More screenshots of PGServer and PGClient on their respective product pages.
#Building
There are several targets in the XCode project. Some of these are for the Mac OS X platform, and some for iOS. To compile frameworks for release, you'll need to run the following command:
etc/build-frameworks.sh
The built frameworks for Macintosh work with Mac 10.8 and the ones for iOS should work for 6.1 and above. You can also run through the unit tests using the following command:
etc/test-frameworks.sh
#Limitations
This software is in development and as such there are plenty of limitations and probably issues. These are listed on each component page. If you know of any issues or feature requests, please let me know and I may be able to help out.