Over a million developers have joined DZone.

Rails and PostgreSQL with NetBeans IDE

· Database Zone

Sign up for the Couchbase Community Newsletter to stay ahead of the curve on the latest NoSQL news, events, and webinars. Brought to you in partnership with Coucbase.

This article describes how you can create a Rails application accessing PostgreSQL database using NetBeans 6.

Download and Configure PostgreSQL

  1. Download PostgreSQL from here.
  2. After download and install, open the PostgreSQL command prompt (from the program menu) and initialize the database by giving the following command (in bin directory):

    initdb -D "\users\Arun Gupta\postgresql\data"

    Note, the directory specified in the command does not exist and will be created after the command is executed. The following output is shown:

    The files belonging to this database system will be owned by user "Arun Gupta".
    This user must also own the server process.

    The database cluster will be initialized with locale English_United States.1252.

    fixing permissions on existing directory /users/Arun Gupta/postgresql/data ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 100
    selecting default shared_buffers/max_fsm_pages ... 32MB/204800
    creating configuration files ... ok
    creating template1 database in /users/Arun Gupta/postgresql/data/base/1 ... ok
    initializing pg_authid ... ok
    initializing dependencies ... ok
    creating system views ... ok
    loading system objects' descriptions ... ok
    creating conversions ... ok
    setting privileges on built-in objects ... ok
    creating information schema ... ok
    vacuuming database template1 ... ok
    copying template1 to template0 ... ok
    copying template1 to postgres ... ok

    WARNING: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the -A option the
    next time you run initdb.

    Success. You can now start the database server using:

    "postgres" -D "/users/Arun Gupta/postgresql/data"
    or
    "pg_ctl" -D "/users/Arun Gupta/postgresql/data" -l logfile start


    Please note the username shown in the first line of command output ("Arun Gupta" in this case). This will be required later for configuring database.yml.

  3. Start the PostgreSQL by giving the following command:

    "postgres" -D "/users/Arun Gupta/postgresql/data"

    The following output is shown:

    LOG: database system was shut down at 2008-01-10 22:11:01
    LOG: checkpoint record is at 0/4872F8
    LOG: redo record is at 0/4872F8; undo record is at 0/0; shutdown TRUE
    LOG: next transaction ID: 0/593; next OID: 10820
    LOG: next MultiXactId: 1; next MultiXactOffset: 0
    LOG: database system is ready

Create a JRuby-on-Rails Project Using PostgreSQL

  1. Using NetBeans, create a Rails project. Select PostgreSQL as the database as shown below:

  2. Update the Development database in "database.yml" to match:

    development:
    adapter: postgresql
    host: localhost
    port: 5432
    database: RailsApplication1_Development
    username: Arun Gupta
    password:

    The default port and username are used.
  3. Install a pure-Ruby Postgres database binding by giving the following commands:

    C:\Program Files\NetBeans 6.0\ruby1\jruby-1.0.2\bin>jruby gem install 
    postgres-pr
    Bulk updating Gem source index for: http://gems.rubyforge.org
    Successfully installed postgres-pr-0.4.0

    Adding the gem using "Tools" -> "Ruby Gems" encounters the issue #122593.

Do the Migrations

  1. Open PostgreSQL command prompt and create the database by giving the following command (in bin directory):

    createdb RailsApplication1_Development

    Note this is case sensitive. The following output is shown:

    CREATE DATABASE
  2. Create a new model by right-clicking on the project, selecting "Generate", "model" from the list box and giving the name as "wish".
  3. Expand "Database Migrations", "migrate" and open "001_create_wishes.rb". Change "self.up" helper method as shown below:

    def self.up
    create_table :wishes do |t|
    t.column :greeting, :string
    end
    Wish.create :greeting => "Hello PostgreSQL!"

    end

    This instructs the Rails framework to a new table and populate it with three rows upon migration.
  4. Invoke db:migrate by right-clicking on the project, selecting "Run Rake Task", "db" and then "migrate". This creates the appropriate tables and populate the it with three rows as mentioned above.

Add Controller & View

  1. Right-click on project, select "Generate...".
  2. Take the default value in list box, which is "controller". Specify the value of "Name:" as "show" and value of "Views:" as "wishes".
  3. Expand "Controllers" and open "show_controller.rb" and update the "wishes" helper method as shown below:

    def wishes
    @wish = Wish.find(1).greeting;
    end
  4. Expand "Views", "show", "wishes.rhtml" and add the following fragment as the last line:

    <%= @wish %>

Run the Project

Open "wishes.rhtml" and hit Shift+F6 (default keystroke to run the file). The output is shown as:

Please leave suggestions on other tips that you'd like to see. A complete archive is available here.

Technorati: totd netbeans ruby jruby postgresql windows

The Getting Started with NoSQL Guide will get you hands-on with NoSQL in minutes with no coding needed. Brought to you in partnership with Couchbase.

Topics:

Published at DZone with permission of Arun Gupta, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}