GAE�{PHP�^Ruby�ő񂭐V���E

��5�� GAE+SQL4G��Rails�A�v�����J�����Ă݂悤

���� �I
���g���\�t�g�������

���z �q��
������Ѓi���b�W�G�b�N�X

2010/4/12

Google App Engine�͂��̂܂܂ł�RDB���g���܂���B�������AJDBC�A�_�v�^�o�R��SQL4G�𗘗p����΁A�ʏ��Rails�A�v�����l��ActiveRecord����BigTable�ɃA�N�Z�X�ł���悤�ɂȂ�܂��i�ҏW���j

JRuby�ɂ‚���

�@�{�A�ڂ���3���ł́AGAE�{SQL4G�{Rails�̊‹��ݒ�菇�����������܂����B��3��͎菇�������삯���Ő��������`�ɂȂ��Ă��܂��܂����̂ŁA�����ʼn��߂ăC���X�g�[���������̂ɂ‚��Ă����炢�����̂��AScaffold�Ȃǂ��g�������������傫�ȃA�v�����쐬���Ă݂����Ǝv���܂��B

�@�{�A�ڂł�GAE���Rails�����s���邽�߂�JRuby�𗘗p���Ă��܂��BJRuby��JavaVM���Ruby�����s���邱�Ƃ��ł���‹��ł��BGoogle App Engine�iGAE�j��Python��Java��2�‚��T�|�[�g���Ă��܂����AGAE for Java�ł�JRuby���������߁AJRuby���Ruby on Rails�𓮍삳���邱�Ƃ��”\�ł��iJRuby on Rails�Ƃ��Ă΂�܂��j�B

�@GAE��œ��삳���邾���ł���ΕK���������[�J���‹���JRuby�͕s�v�Ǝv���܂����A���[�J���‹��ō쐬�����A�v���̓�����m�F���邽�߂ɂ̓��[�J���‹���JRuby���C���X�g�[�����Ă����K�v������܂��B

�@JRuby��A���̏�œ��삷��JRuby on Rails�ɂ‚��Ă̏ڍׂ́A���L�̋L�������Q�Ƃ��������B

�֘A�����N�F
�����N JRuby�i��IT ���b�`�N���C�A���g�p�ꎫ�T�j
http://www.atmarkit.co.jp/aig/07wcr/jruby.html
�����N Aptana RadRails�Ŏn�߂�JRuby on Rails������
http://www.atmarkit.co.jp/fjava/special/jruby01/jruby01_1.html
�����N Ruby on Rails��Java EE�J���ɕ֗���NetBeans
http://www.atmarkit.co.jp/fjava/special/netbeans6_02/netbeans6_02_1.html

�@���[�J���ł�JRuby���p�̍ۂ̒��ӓ_�Ƃ��āACRuby�i�l�C�e�B�u��Ruby�‹��j�Ƃ̋�����gem��ʂɂ����ق����ǂ��A�Ƃ������Ƃ�����܂��B���ɐݒ�����Ȃ�����ACRuby��JRuby�ł�gem�̊Ǘ������ʉ�����܂���BCRuby��JRuby�̗��������Ă���ꍇ�ACRuby���ŃC���X�g�[������gem��JRuby�ł͔F������܂���B���̂��ߗ����̊‹��œ���gem�𗘗p�������ꍇ�́A�o����gem�R�}���h�𗘗p���Ă��ꂼ��ɓ���gem���C���X�g�[������K�v������܂��B�‹��ϐ���K�؂ɐݒ肷�邱�Ƃŗ��҂�gem�𓯈�̏ꏊ�ŊǗ����邱�Ƃ��”\�ł����A���ׂĂ�gem�ɂ‚��Č݊���������킯�ł͂���܂���̂ŁA�{�A�ڂł�CRuby��JRuby��gem�̊i�[�ꏊ�͋��ʉ����Ȃ��O��Ő������Ă��܂��B

�@CRuby��gem���C���X�g�[������ꍇ�́A

$ sudo gem install [gem�̖���]

�@JRuby��gem���C���X�g�[������ꍇ��

$ jruby -S gem install [gem�̖���]

�Ƃ��܂��B

ActiveRecord��SQL4G�̘A�g

�@����ɁAJRuby���Ruby on Rails�𓮍삳����ꍇ�A��p��gem�iJDBC�A�_�v�^�j���C���X�g�[�����邱�ƂŁAActiveRecord����̃f�[�^�x�[�X�ڑ��̎�i�Ƃ���JDBC�ڑ��𗘗p���邱�Ƃ��”\�ł��B�{�A�ڂ̃L�[�ƂȂ�SQL4G��H2 Database���G���n���X�����v���_�N�g�ŁA���ۂ̃f�[�^�̊i�[��BigTable�ɑ΂��čs���Ă��܂����A�O������͒ʏ��H2 Database�ƂȂ��ς��Ȃ��U�镑���悤�ɍ���Ă��܂��B���̂���JRuby���Ruby on Rails���ғ����AActiveRecord�����JDBC�A�_�v�^���o�R����H2 Database�i�Ɠ����悤�ɐU�镑��SQL4G�j�ɐڑ����邱�Ƃ��ł���̂ł��B

�\���}

�@����C���X�g�[�����Ă���activerecord-jdbch2-adapter�́A��L�ɂ���悤��ActiveRecord����JDBC���o�R����H2 Database�ɐڑ�����JDBC�A�_�v�^�ł��Bactiverecord-jdbch2-adapter�ƂƂ��ɃC���X�g�[�������gem�͈ȉ��̂Ƃ���ł��B

  • activerecord-jdbc-adapter
  • jdbc-h2

�@������gem���C���X�g�[�������ƁAdatabase.yml��JDBC�ڑ��p�̐ݒ肪�L�q�ł���悤�ɂȂ�܂��B���L�̃��X�g�Łuadapter: jdbc�v��JDBC�ڑ��ł��邱�ƁiJDBC�A�_�v�^�𗘗p���Đڑ�����j�������Ă��܂��B�ق��̍��ڂɂ‚��ẮAJava�v���O���}�Ȃ炨�Ȃ��݂̐ݒ肩�Ǝv���܂��B�udriver�v�ɂ�SQL4G�̃h���C�o�N���X�ujp.littlesoft.sql4g.Driver�v���w�肵�܂��B�uurl�v�ɂ̓f�[�^�x�[�X�����A�uuser�v�upassword�v�ɂ�H2 Database�̃f�t�H���g�̐ڑ����[�U�[���ƃp�X���[�h���w�肵�܂��B

��database.yml
development:
  adapter: jdbc
  driver: jp.littlesoft.sql4g.Driver
  url: mydb
  username: sa
  password:

production:
  adapter: jdbc
  driver: jp.littlesoft.sql4g.Driver
  url: mydb
  username: sa
  password:

�@��L�̐ݒ�ł̓f�[�^�x�[�X�����umydb�v�ƂȂ��Ă��܂����ASQL4G�ŗ��p����f�[�^�x�[�X��environment.rb�ɂč쐬���Ă��܂��B

��environment.rb�̈ꕔ����
  # Skip these so generators can run from MRI
  if defined? JRUBY_VERSION
    # Use DataMapper to access datastore
    require 'rails_dm_datastore'
    # Set Logger from appengine-apis, all environments
    require 'appengine-apis/logger'
    config.logger = AppEngine::Logger.new
    # Skip frameworks you're not going to use.
    # :active_record���O��
    config.frameworks -= [ :active_resource, :action_mailer ] 
    # SQL4G�Ńf�[�^�x�[�X���쐬
    require 'java'
    Java::JpLittlesoftSql4g.GAdministrator.new("mydb#0", "sa", "", true) rescue nil
  end

�@��L�́uJava::JpLittlesoftSql4g.GAdministrator.new("mydb#0", "sa", "", true) rescue nil�v��SQL4G��Ƀf�[�^�x�[�X���쐬����R�[�h�ł��B

�@SQL4G�ł�jp.littlesoft.sql4g.GAdministrator�N���X�̃C���X�^���X�𐶐�����ۂ̈����̎w��ɂ���āA�f�[�^�x�[�X���쐬���邱�Ƃ��ł��܂��B�R���X�g���N�^�̑�1���������3���������ꂼ��f�[�^�x�[�X���A���[�U�[���A�p�X���[�h�������Ă���A��4������true�̓f�[�^�x�[�X���쐬���邩�ۂ��������Ă��܂��B

�@JRuby��Ruby�R�[�h����Java�R�[�h�����s����ꍇ�A�urequire 'java'�v���K�v�ŁA���s������Java�R�[�h�ɂ́uJava::�v�ɑ����ăp�b�P�[�W�����u.�v�ŋ�؂����Ɋe���[�h�̐擪��啶���ɂ��ĘA�����A�u.�v�ŋ�؂��ăN���X���A���\�b�h�����L�q���܂��BJava�̃C���X�^���X������Ruby�ł�new���\�b�h�ɑ������邽�߁A��L�̂悤�ɋL�q���Ă��܂��B�܂��Aenvironment.rb���ēx���s���ꂽ�ꍇ�AGAdministrator�N���X�̃R���X�g���N�^�Ńf�[�^�x�[�X���ēx�������悤�Ƃ���Ɨ�O���������Ă��܂����߁A�urescue nil�v��t���Ă���܂��B

 
1/3
next

Index
GAE+SQL4G��Rails�A�v�����J�����Ă݂悤
�@ Page1
JRuby�ɂ‚���
ActiveRecord��SQL4G�̘A�g
  Page2
google-appengine gem�ɂ‚���
�Z�b�g�A�b�v�X�N���v�g(rails2_appengine.rb)�ɂ‚���
Rails+SQL4G�ł̃}�C�O���[�V����
Rails�{SQL4G�ŃA�v���P�[�V�������J�����Ă݂�
  Page3
JRuby on Rails�‹�(��GAE)�ł̓���m�F
GAE�‹��ł̓���m�F
�}�C�O���[�V�����̑�փR���g���[�������
�{�Ԋ‹��Ƀf�v���C�A�������c�c

index GAE�{PHP�^Ruby�ő񂭐V���E

�@Coding Edge�����ߋL��
���܂���A���S���Y�����w�ԈӖ�
�R�[�f�B���O�ɖ𗧂I �A���S���Y���̊�{�i1�j
�@�R���s���[�^�Ɂu3�̔{����3�̕t�������v�𔻒f������ɂ͂ǂ������炢�����B���z�͂�b���悤
Zope 3�̖��͂ɔ���
Zope 3�Ƃ͉�����H�i1�j
�@Python�ŏ����ꂽWeb�A�v���P�[�V�����t���[�����[�N�uZope 3�v�B�ق��̃\�t�g�E�F�A�Ƃ͈�̉�������Ă���̂��H
�n��‹��v���O���~���O�̃X�X��
�ēc �~�̃R�[�f�B���O�V��
�@�����\��IT�@��Ɉ͂܂ꂽ�‹��ŃR���s���[�^�̓��쌴���ɐG��邱�Ƃ͉”\���낤���B�n���PC��Ƀr�b�g�}�b�v�̒������ǂ�����Ĉ����H
Haskell�v���O���~���O�̊y���ݕ�
�̂�т�Haskell�i1�j
�@�֐��^����ɕ��ނ����Haskell�BC����Ȃǂ̎葱���^����Ƃ܂������قȂ�v���O���~���O�̐��E�ɓ��ݏo���Ă݂悤
������ƕς����Lisp����
Gauche���^�v���O���~���O�i1�j
�@Lisp�̈��ł���Scheme�B�����‚����鏈���n�̒��ł��C�y�ɃX�N���v�g��������Gauche��Lisp�̐��E��̌����Ă݂悤
�@�@Coding Edge�t�H�[�����t�B�[�h�@ 2.0�^1.0�^0.91


Coding Edge �t�H�[���� �V���L��
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

>

Coding Edge �L�������L���O

�{�� ����