Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ プログラミング » Ruby サポート » SQL Anywhere の Ruby API サポート

 

SQL Anywhere での Rails サポートの設定

SQL Anywhere に Ruby on Rails サポートを設定できます。

前提条件

この作業を実行するための前提条件はありません。

 ♦ タスク
  1. RubyGems をインストールします。これにより、Ruby パッケージのインストールが簡単になります。インストールする適切なバージョンについては、Ruby on Rails のダウンロードページを参照してください。[external link] http://www.rubyonrails.org/を参照してください。

  2. システムに Ruby のインタプリターをインストールします。インストールする推奨バージョンについては、Ruby on Rails のダウンロードページを参照してください。[external link] http://www.rubyonrails.org/ を参照してください。

  3. 次のコマンドを実行し、Ruby Rails とその依存性をインストールします。

    gem install rails
  4. Ruby Development Kit (DevKit) をインストールします。DevKit[external link] http://rubyinstaller.org/downloads/ からダウンロードして、[external link] http://github.com/oneclick/rubyinstaller/wiki/Development-Kit の手順に従ってください。

  5. 次のコマンドを実行し、SQL Anywhere ActiveRecord サポート (activerecord-sqlanywhere-adapter) をインストールします。

    gem install activerecord-sqlanywhere-adapter
  6. Rails によってサポートされたデータベース管理システムのセットに SQL Anywhere を追加します。本書作成時点での最新リリースバージョンは、Rails 3.1.3 です。

    1. Rails の configs\databases ディレクトリに sqlanywhere.yml ファイルを作成し、データベースを設定します。\Ruby ディレクトリに Ruby をインストールし、Rails のバージョン 3.1.3 をインストールした場合、このファイルへのパスは \Ruby\lib\ruby\gems\1.9.1\gems\railties-3.1.3\lib\rails\generators\rails\app\templates\config\databases になります。このファイルの内容は次のようになります。



      #
      # SQL Anywhere database configuration
      #
      # This configuration file defines the patten used for
      # database filenames. If your application is called "blog",
      # then the database names will be blog_development,
      # blog_test, blog_production. The specified username and
      # password should permit DBA access to the database.
      #
      
      development:
        adapter: sqlanywhere
        server: <%= app_name %>
        database: <%= app_name %>_development
        username: DBA
        password: sql
      
      # Warning: The database defined as "test" will be erased and
      # re-generated from your development database when you run "rake".
      # Do not set this db to the same as development or production.
      test:
        adapter: sqlanywhere
        server: <%= app_name %>
        database: <%= app_name %>_test
        username: DBA
        password: sql
      
      production:
        adapter: sqlanywhere
        server: <%= app_name %>
        database: <%= app_name %>_production
        username: DBA
        password: sql

      sqlanywhere.yml ファイルは、Rails プロジェクトで database.yml ファイルを作成するためのテンプレートになります。次のデータベースオプションを指定できます。

      • adapter   (必須、デフォルトなし)。SQL Anywhere ActiveRecord アダプタを使用する場合、このオプションを sqlanywhere に設定する必要があります。

      • database   (必須、デフォルトなし)。このオプションは、接続文字列の "DatabaseName" に対応しています。

      • server   (オプション、デフォルトは database オプション)。このオプションは、接続文字列の "ServerName" に対応しています。

      • username   (オプション、デフォルトは 'DBA')。このオプションは、接続文字列の "UserID" に対応しています。

      • password   (オプション、デフォルトは 'sql')。このオプションは、接続文字列の "Password" に対応しています。

      • encoding   (オプション、デフォルトは OS の文字セット)。このオプションは、接続文字列の "CharSet" に対応しています。

      • commlinks   (省略可)。このオプションは、接続文字列の "CommLinks" に対応しています。

      • connection_name   (省略可)。このオプションは、接続文字列の "ConnectionName" に対応しています。

    2. Rails の app_base.rb ファイルを更新します。以前の手順と同じ条件の場合、このファイルはパス \Ruby\lib\ruby\gems\1.9.1\gems\railties-3.1.3\lib\rails\generators\app_base.rb にあります。app_base.rb ファイルを編集し、次の行を検索します。

      DATABASES = %w( mysql oracle postgresql sqlite3 frontbase ibm_db sqlserver )

      このリストに次のように sqlanywhere を追加します。

      DATABASES = %w( sqlanywhere mysql oracle postgresql sqlite3 frontbase ibm_db sqlserver )
  7. 次の SQL Anywhere 固有の注意事項に従って、Ruby on Rails の Web サイト ([external link] http://guides.rails.info/getting_started.html) にあるチュートリアルに従います。

    • このチュートリアルには、blog プロジェクトを初期化するコマンドが記載されています。SQL Anywhere で使用するように blog プロジェクトを初期化するコマンドは次のようになります。

      rails new blog -d sqlanywhere
      
    • blog アプリケーションを作成したら、そのフォルダに移動して、そのアプリケーションで直接作業を続けます。

      cd blog
      
    • gemfile ファイルを編集して、SQL Anywhere ActiveRecord アダプタ用の gem ディレクティブを含めます。下に示す行の後に新しいディレクティブを追加します。

      gem 'sqlanywhere'
      gem 'activerecord-sqlanywhere-adapter'
    • config\database.yml ファイルは、開発、テスト、運用データベースを参照します。チュートリアルで示しているように rake コマンドでデータベースを作成する代わりに、プロジェクトの db ディレクトリに移動して、次のように 3 つのデータベースを作成します。

      cd db
      dbinit -dba DBA,sql blog_development
      dbinit -dba DBA,sql blog_test
      dbinit -dba DBA,sql blog_production
      cd ..

結果

SQL Anywhere で Rails サポートが設定されました。

次の手順

次のように、データベースサーバと 3 つのデータベースを起動します。

dbsrv16 -n blog blog_development.db blog_production.db blog_test.db

コマンドラインのデータベースサーバ名 (blog) は、database.yml ファイルの server: タグで指定した名前と同じにする必要があります。sqlanywhere.yml テンプレートファイルは、データベースサーバ名が、生成されるすべての database.yml ファイルのプロジェクト名と必ず同じになるように設定されています。

 参照