Hi.
This is Makoto @ New Bamboo.
It may take a while to merge Red's Mysql version (
http://github.com/reddavis/panda_cap/tree/master) into our master branch.
For the time being, you can still play with Panda using simpledb alternatives.
There are currently 2 simpledb like tools at this moment(as far as I know).
* simplerdb (
http://aws.amazon.com/simpledb/) = Ruby implementation.
* simpledb-dev (
http://code.google.com/p/simpledb-dev/) = Python implementation
I initially tried simplerdb, but found that the implementation is not complete, therefore not suitable for Panda use. Also it's an in-memory db, so the data will be lost every time you stop simplerdb.
I then tried simplerdb-dev(the Python one). simpledb-dev stores data on file systems, so you don't need to worry about losing data every time you stop simpledb-dev. However, EC2 vapors every time you restart the instance, so you still need to use Amazon Elastic Block Store (
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1667 ) to keep your data.
Here are the quick steps to use simpledb-dev at Panda.
Please give a try and let me know if you find any issues. If people find this solution useful, I will add simpledb-dev into next AMI release image, and also update the documentation.
1. Setup simplerdb-dev on your EC2 instance.
# You can skip this part if python version is already 2.5
apt-get update
apt-get install python2.5-dev
rm /usr/bin/python
ln -s /usr/bin/python2.5 /usr/bin/python
# This step is to install easy_install, Python equivalent of Gems.
# If you are installing Panda locally on your machine (I only tried on OSX Leopard),
# you may already have easy_install, so you can skip it.
curl -O
http://peak.telecommunity.com/dist/ez_setup.pypython ez_setup.py
# Installing Web module
easy_install web.py
# Downloading simpledb-dev
wget
http://simpledb-dev.googlecode.com/files/simpledb-dev-0.1.4.zipunzip simpledb-dev-0.1.4.zip
cd SimpleDB-Dev/
cd src
# Starting simpledb_dev server
python simpledb_dev.py 8087 (can be any port number.).
2. Open up another terminal, and follow up to "Configure Panda" section of "Getting Started" guide(
http://pandastream.com/docs/getting_started)
3. Override simpledb url, before "Create S3 buckets and SimpleDB domains" of "Getting Started" guide(
http://pandastream.com/docs/getting_started)
Add the following line at the beginning of config/aws.rb file of Panda
Amazon::SDB::Base::BASE_PATH = '
http://127.0.0.1:8087'
4. Continue "Create S3 buckets and SimpleDB domains" of "Getting Started" guide(
http://pandastream.com/docs/getting_started)
Once it's all done, confirm via console that you can connect to simpledb-dev
$cd /var/local/www/panda
$merb -i
~ Loaded DEVELOPMENT Environment...
~ loading gem 'merb-assets' ...
~ loading gem 'merb-mailer' ...
~ loading gem 'merb_helpers' ...
~ loading gem 'uuid' ...
~ loading gem 'to_simple_xml' ...
~ loading gem 'rog' ...
~ loading gem 'amazon_sdb' ...
~ loading gem 'simple_db' ...
~ loading gem 'retryable' ...
~ loading gem 'activesupport' ...
~ loading gem 'rvideo' ...
~ loading gem 'panda' ...
~ loading gem 'gd_resize' ...
~ loading gem 'map_to_hash' ...
~ loading gem 'spec_eql_hash' ...
~ loading gem 'error_sender' ...
~ Compiling routes...
./config/aws.rb:1: warning: already initialized constant BASE_PATH
~ Starting Merb server listening at
0.0.0.0:4000
irb(main):001:0> Amazon::SDB::Base::BASE_PATH
=> "
http://127.0.0.1:8087"
irb(main):002:0> User.query
=> [#<User:0xb71fda08 @key="admin", @new_record=false, @attributes=#<Amazon::SDB::Multimap:0xb71fd9e0 @size=nil, @mset={}>>]
irb(main):003:0> Profile.query
=> [#<Profile:0xb71dc1c8 @key="561e38b0-706e-012b-b437-123138002d32", @new_record=false, @attributes=#<Amazon::SDB::Multimap:0xb71dc1a0 @size=nil, @mset={}>>, #<Profile:0xb71dc1b4 @key="562ef420-706e-012b-b437-123138002d32", @new_record=false, @attributes=#<Amazon::SDB::Multimap:0xb71dc164 @size=nil, @mset={}>>, #<Profile:0xb71dc18c @key="56101ea0-706e-012b-b437-123138002d32", @new_record=false, @attributes=#<Amazon::SDB::Multimap:0xb71dc128 @size=nil, @mset={}>>, #<Profile:0xb71dc150 @key="5621fa70-706e-012b-b437-123138002d32", @new_record=false, @attributes=#<Amazon::SDB::Multimap:0xb71dc0ec @size=nil, @mset={}>>, #<Profile:0xb71dc114 @key="56dd8600-706e-012b-b437-123138002d32", @new_record=false, @attributes=#<Amazon::SDB::Multimap:0xb71dc0b0 @size=nil, @mset={}>>]
Enjoy
Makoto