This is a prototype of an application that imports data from the city of Denton's open data project into a permanent schema, and offers a flexible API on top of that schema. The db is PostgreSQL and the framework for the API is Sinatra.
- Install PostgreSQL
- Make sure you have ruby installed
- From the project directory,
gem install bundler
- Then
bundle install
- Run
rake db:create db:migrate
- To run the server locally:
bundle exec ruby app/app.rb
- To import all available data, go to
<host[:port]>/import-data
- To delete all current data, go to
<host[:port]>/delete-data
- See example APIs locally (the 'year' params can vary between 2008 and 2014):
If you get the following error:
➜ psql: FATAL: database "<user>" does not exist
Run the shell command, createdb
. This creates a database with the name of the current user.
Source: Stack Overflow Article.
If you used Brew to install Postgres, you can also use services
to start and stop the psql
background service.
➜ brew tap homebrew/services ## if you don't have it already installed
➜ brew services start postgresql
➜ brew services start postgresql
If the app crashes with the following warning:
$ ActiveRecord::ConnectionTimeoutError - could not obtain a connection from the pool within 5.000 seconds (waited 5.001 seconds); all pooled connections were in use:
You broke it!
Just kidding.. but the app will need to be restarted. We still need to build in some logic for handling blocking calls. Thanks fer yor patience!