OpenPNE 3.0がリリースされた。
私たちは「あらゆる組織にOpenPNEを提供する」ことをめざし、OpenPNEプロジェクトをすすめています。
OpenPNE3.0のテーマは「プラットフォーム化」。OpenPNEをあらゆる組織のプラットフォーム、インフラとするための、数多くの機能改善を行いました。
本バージョンの特徴は以下の通りです。
- 国際化を実現
- プラットフォーム化を目指し、多彩なAPIを搭載
- 外部サービスとのID連携が可能に OpenID対応
- そのほかの技術革新
- OpenPNE3.0上で動くアプリケーション
昨夜未明までtrunkを動かしてきた感覚でいえば、SNSを運営するためのシステムというより、まだSNSを開発するためのベースという感じ。OpenPNE2相当の機能がそろって安定動作するのは、もうちょっと先かな。今日になって一気にリリースされている可能性はあるけど。
それでも、かなり動く部分は動くし、触りはじめるにはいいタイミングだと思う。僕も、合間合間を見て、少しずつ触っていきたいと思っているし、実際に気が付いたことはsns.openpne.jpやtrac.openpne.jpで報告し始めている。
まずは無事リリース、おめでとうございました!
(関連記事)
うごメモはてなで、不適切な作品についての通報に対して、はてなポイントを付与するという発表がありました。
うごメモはてなで通報を受けた作品を、はてなの管理者が確認して不適切であると判断、非公開とした際に、その作品について最初に通報いただいた方にはてなポイントを 5ポイントを付与します。
不適切な作品を通報いただいた方に「はてなポイント」の付与を開始します - うごメモはてな日記
2点、気になったことを。
「最初に通報した人」だけにポイント付与でいいのか?
ポイントを目的にパトロールする人にとっては、最初の通報者にならなければいけないから、「疑わしきは通報」することになりそうな気がします。「掲載ガイドライン」の禁止事項には、キス、抱擁、対戦格闘・ケンカ描写、非合法なギャンブル、言語・思想関連の不適切な描写が含まれます。かなり広い範囲、普通に見れば別にいいんじゃないかと思うようなものも、「疑わしくなくもない」に入ります。
「はてなポイント」でいいのか?
上記アナウンスに「『はてなポイント』て何?」とコメントがついています。うごメモはてな内では、はてなポイントを使う場面はなさそうです。うごメモだけを(でも熱心に)楽しんでいるユーザ層には嬉しくもなんともなく、それが何なのかすらわからないのです。一方で、他のはてなサービスユーザには、うごメモは使ってなくても、うごメモをどうでもいいと思っていても、嬉しい報酬です。
「うごメモが良くなって、ポイントももらえるなら」というパトロールは良さそうですが、ポイントだけが目的のパトロールだと「疑わしきは通報」が激しくなるでしょうし、「ユーザの適応的行動は自動でそれを行う事」とうそぶく向きも増えるでしょう。コンテンツが根こそぎになっても、サイトがつまらなくなっても良いのですから。報酬は、少なくともうごメモユーザみんなが嬉しいもの、できればうごメモユーザ以外には嬉しくないものが良かったように思います。例えば、作者ページに合計が表示されている(それだけの)はてなスターでも、はてなポイントより適切だったのでは。
2点挙げましたが、報酬がはてなポイントだったことは、はっきりと不適切だったのではないかと思います。
Windows環境で「定期的にRSSなどをチェック、新着情報をポップアップ表示」させたいと思って、簡易的なフィードクローラ“feed2growl”を書いてみました。次のような特徴があります。
- 新着情報をGrowlに送ります。
Growlなので、新着情報がポップアップ表示されます。Growl for WindowsやWhineでもOKです。 - タスクに登録して定期実行しやすいように配慮しています。
exeファイルは、定期実行時にコマンドプロンプト風の画面が出ないようになっています。
プロキシ情報はInternet Explorerから取得するので、環境変数などを気にしなくてOKです。
ただし使おうと思うと、Growlの設定ができること(私はWhineを使っています)、config.ymlを見て、何となく設定ができることが必要です。Perlスクリプトとしては、「LWP::UserAgent::ProxyAnyを使う」「Net::GrowlClientを使う」「タスクに登録しやすいexeファイル化をする」が個人的な今回のチャレンジ。むしろ、これらのサンプル程度にでもお役に立てば。
シンクライアントは死んだが話題になっている。
今日、IT業界の著名なコンサルタントである、日本IBM出身のK社のNさんのオフィスにお邪魔してた。(略)Kさんは開口一番、「シンクライアントは死んだね」とおっしゃった。
値段が下がらない、家に仕事を持って帰れない、サーバに負荷がかかる、既存パソコンを排除できない、そして不況、を挙げる。その上で、既存のパソコンのセキュリティーレベルを挙げれば済むことだと切って捨てる。
IT業界来し方行く末 > シンクライアントは死んだ : ITmedia オルタナティブ・ブログ
同じくITmedia オルタナティブ・ブログでも、これに言及したエントリがいくつかある。「代替案のある生活 > シンクライアントの使い方」では上記のエントリを「片貝さんのうまいアンチテーゼ的なブログ」のおかげで、と切り出し、シンクライアントの気に入っている点を挙げている。「平凡でもフルーツでもなく、、、 > 友人が個人情報漏洩から職を失った経験のある立場としてはシンクライアント賛成派です」ではその安心感に言及し、「『ビジネス2.0』の視点 > シンクライアント使っています」ではシンクライアントとパソコンを比較して長所短所を明確にした上で、「企業の文化や取り巻く環境などによって、シンクライアントの是非は分かれるところかと思われます」と締めている。
●
なるほど、シンクライアントの良さは分かる。でも、だったら「既存のパソコンを排除」できる世界を思い描いたらいいじゃないか、と直感的に思った。特別な環境を除けば、エンドユーザコンピューティングの全てがシンクライアント方式である世界。
エンドユーザコンピューティングを、「エンプロイ・コンピューティング」企業内を中心とした業務のためのコンピュータ利用と、「ホーム・コンピューティング」家庭を中心とした生活や楽しみに関わるコンピューティングに分けられると仮定してみる。彼らの議論は、「エンプロイ・コンピューティング」環境をシンクライアントで利用することの良さに終始している。でも「ホーム・コンピューティング」環境もシンクライアント化しちゃえば、とは言わない。
ホーム・コンピューティング環境もシンクライアント化しちゃえばいい。できるはずだ。例えば、Amazon EC2は仮想サーバ環境としてよく使われているが、本当の姿は純粋な仮想マシンだ。EC2上の仮想マシンをデスクトップ環境として使ったっていいはずだ。ローカルマシンと同じくらい快適に使えるとしたら、普段使いのデスクトップだってEC2上の仮想マシンでいい。そうなったら、普通の人が使う端末ってパソコンである必要はなくなって、シンクライアントを使うようになるんだ。
普段からシンクライアントを、何も考えず当たり前に使っていれば、仕事だってシンクライアントですることが普通だとみんなが思うだろう。全てのエンドユーザコンピューティングをシンクライアント化する。それができた時、先進的な普通の人がシンクライアントを使い始め、その後でキャズムの先にいる普通の普通の人たちも、シンクライアントでコンピューティングするようになる。それが、「既存パソコンが排除」された世界。多分企業だけをシンクライアント化した先には来ない未来だ。
●
現時点では、そんなにクラウドの向こう側のマシンを信頼できない(たとえばEC2はトラブル時に環境が失われる)し、多くの人にとってはそんなに信用もできないんだろう。もちろん、一般家庭でネットワーク越しにデスクトップ環境をすいすい使えるほどには、まだそこまでブロードバンドも太くない。
でもありうる未来のはずだ。ネットワークインフラから仮想マシン環境、信用や信頼を担保する仕組み作り、そしてホームコンピューティングが仮想マシンを選ぶ破壊的価格体系の実現。今のシンクライアントの想定利用方法や価格体系などを、一度殺すぐらいのことになる。それが行われれば、シンクライアントの世界は来ると思う。それは、クラウド化する世界がいずれ迎える、ごく正常な姿だと思うから。
Googleが携帯をGoogleにとっての良い端末にするために無償のOSまで公開したように、この大ナタを振るうのはそれを必要とするシンクライアント事業者や、あるいはクラウドのホスティング業者なんだろうな。それが行われなければ、「シンクライアントは死んだね」と言われたとおりになる。それが行われたならば、今のシンクライアントは死に、シンクライアント化したコンピューティング世界へと再生する。
どちらにせよシンクライアントは一度死ぬんじゃないか。滅亡に至って死ぬのか、再生に向けて死を遂げるのか。そこを選択するタイミングなのだ。全くの門外漢、一連のエントリを読んだだけでの感想だけど、そう思った。
■ 前提 Symfonyをセットアップしておきます。手順などは「symfony入門(1):symfonyで始めるPHPフレームワーク:CodeZine」を参考に。ただし、PEARでインストールできるsymfonyのstableが1.2.1になってましたので、stableをインストールしました。 ■ インストール作業 手順はおおむね、リリースアナウンスからリンクされている「OpenPNE3alpha3 セットアップ手順」準拠。 c:\(略)\htdocs> svn co https://trac.openpne.jp/svn/OpenPNE3/trunk OpenPNE3 OpenPNE3\config\ProjectConfiguration.class.php.sampleを同ディレクトリにProjectConfiguration.class.phpとしてコピーし、手順通り3行目を以下のように修正。 require_once 'C:/Program Files/PHP/PEAR/symfony/autoload/sfCoreAutoload.class.php'; 次に、セットアップ手順にあるとおりデータベースを作成。ただしデータベース名は日付など省きました。 c:\(略)\htdocs> mysql -uroot -p そして、インストール。OpenPNE3\symfonyはUnix系のシェルスクリプトとして実行することを前提にしているので、「Symfony を Apache on Windows で使う」に倣ってOpenPNE3\symfony.batを作成。内容は全く同じでOKです。そして、OpenPNE3ディレクトリでコマンドプロンプトを開き、symfony(と入力すればsymfony.batのことになる)を実行。trunkを使用しているので、後にデータベース設定などは付けないこと。 c:\(略)\htdocs\OpenPNE3> symfony openpne:install 実行中にデータベース名その他の入力を求められます。ここで、上記で作成したデータベース名、アクセス用のDBユーザ名、パスワードなどを入力すると先に進みます。 Choose DBMS (mysql, pgsql or sqlite) mysql Type database username root Type database password (optional) jugemjugem Type database hostname localhost Type database name OpenPNE3 Type database socket path (optional) The DBMS mysql Is it OK to start this task? (y/n) y これでしばらくするとインストールが完了します。完了後、ブラウザでOpenPNE3/web/pc_frontend_dev.phpにアクセスしてみます。 http://localhost/OpenPNE3/web/pc_frontend_dev.php ログイン画面が出ればインストール成功。メールアドレス“sns@example.com”、パスワード“password”でログインできるはずです。 ■ まとめ OpenPNE3は近日リリースされる予定で、開発もかなり進んできているようです。また、今回いろいろと対応してもらいながら、Linuxを用意しなくても、Windows環境でインストールできるところまできたことは確認できました。 Windows上で環境を整えられるようになったことは、試用の垣根を一つ下げたかと思います。私自身は、これから、各機能などを触りながら、できる限りのフィードバックをして行こうと思います。皆様もぜひOpenPNE3を試して、何かあれば開発コミュニティへフィードバックをしてください。 ■ 参考:OpenPNE3 beta3からtrunkのリビジョン10319までの試行エントリ 1月21日のエントリには、「Maximum execution time of 30 seconds exceeded」というエラーが出る時の対処や、http://openpne3.local/pc_frontend_dev.phpのようなURLでアクセスできるようにするためのApacheのバーチャル・ホスト設定などがあります。
まずApacheのドキュメントホームでOpenPNE3をチェックアウトします。
password: (パスワード入力)
mysql> CREATE DATABASE openpne3 DEFAULT CHARACTER SET=utf8;
mysql> exit
The Database Username root
The Database Password ******
The Database Hostname localhost
The Database Name OpenPNE3_trunk_20090119
The Database Socket
このエントリ時点ではインストールに成功しませんでした。
この後の「Windows+Apache2.2+PHP5.2.6でOpenPNE3beta3」が成功時のエントリです。
----
WindowsでOpenPNE3インストール(2009.01.20)の問題がリビジョン10288で修正された(投げまくって対応してもらいまくってますね)とのことなので、最新のtrunkをチェックアウト。リビジョン10302でインストールを再試行。
c:\(略)\htdocs\OpenPNE3> symfony openpne:install
今回は最後までインストールが行きました!
■ 問題点1 (解決済み)
そしてインストールしたローカルのURLにブラウザでアクセス。
http://localhost/OpenPNE3/web/pc_frontend_dev.php
エラーになります。
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\config\sfAutoloadConfigHandler.class.php on line 129
繰り返しますが、10回目まで毎回エラー。
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\util\sfFinder.class.php on line 421
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\config\sfAutoloadConfigHandler.class.php on line 129
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\util\sfFinder.class.php on line 421
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\util\sfFinder.class.php on line 421
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\util\sfFinder.class.php on line 415
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\config\sfAutoloadConfigHandler.class.php on line 129
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\config\sfAutoloadConfigHandler.class.php on line 130
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\util\sfFinder.class.php on line 399
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\PHP\PEAR\symfony\config\sfAutoloadConfigHandler.class.php on line 130
毎回エラー内容は最長実行時間30秒に達したというもので、エラー個所が微妙に違うということは、本当に処理しているものの時間が足りないのだと判断します。C:\Program File\PHP\php.iniで制限を60秒に変更。
max_execution_time = 60 ; Maximum execution time of each script, in seconds
Apacheを再起動して、再度アクセス。このエラーはでなくなりました。
■ 問題点2 (未解決)
今度は別のエラー。
500 | Internal Server Error | sfConfigurationException
Configuration file "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\OpenPNE3\lib/config/config/auth.yml" does not have a registered handler.stack trace
at ()in SF_SYMFONY_LIB_DIR\config\sfConfigCache.class.php line 101 at sfConfigCache->callHandler('C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\OpenPNE3\lib/config/config/auth.yml', array('C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\OpenPNE3\lib/config/config/auth.yml'), 'C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\OpenPNE3\cache\pc_frontend\dev\config/Program_Files_Apache_Software_Foundation_Apache2.2_htdocs_OpenPNE3_lib_config_config_auth.yml.php')in SF_SYMFONY_LIB_DIR\config\sfConfigCache.class.php line 194 at sfConfigCache->checkConfig('C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\OpenPNE3\lib/config/config/auth.yml')in SF_ROOT_DIR\lib\user\opAuthAdapter.class.php line 56 at opAuthAdapter->getAuthConfig('enable_pc')in SF_ROOT_DIR\lib\user\sfOpenPNESecurityUser.class.php line 59 at sfOpenPNESecurityUser->getAuthModes()in SF_ROOT_DIR\lib\user\sfOpenPNESecurityUser.class.php line 118 at sfOpenPNESecurityUser->getCurrentAuthMode()in SF_ROOT_DIR\lib\user\sfOpenPNESecurityUser.class.php line 38 at sfOpenPNESecurityUser->initialize(object('sfEventDispatcher'), object('sfSessionStorage'), array('auto_shutdown' => '', null, 'timeout' => '1800', 'logging' => '1', 'use_flash' => '1', 'default_culture' => 'ja_JP'))in SF_SYMFONY_LIB_DIR\user\sfUser.class.php line 48 at sfUser->__construct(object('sfEventDispatcher'), object('sfSessionStorage'), array('auto_shutdown' => '', null, 'timeout' => '1800', 'logging' => '1', 'use_flash' => '1', 'default_culture' => 'ja_JP'))in SF_ROOT_DIR\cache\pc_frontend\dev\config\config_factories.yml.php line 134 at require('C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\OpenPNE3\cache\pc_frontend\dev\config\config_factories.yml.php')in SF_SYMFONY_LIB_DIR\util\sfContext.class.php line 149 at sfContext->loadFactories()in SF_SYMFONY_LIB_DIR\util\sfContext.class.php line 76 at sfContext->initialize(object('pc_frontendConfiguration'))in SF_SYMFONY_LIB_DIR\util\sfContext.class.php line 59 at sfContext::createInstance(object('pc_frontendConfiguration'))in SF_ROOT_DIR\web\pc_frontend_dev.php line 14symfony v.1.2.1 - php 5.2.6
そういえばcodezineのサンプルは仮想ホストを設定して、パスはルートでアクセスしないと画像やCSS周りでトラブルがありました。可能性は薄そうですが、そういうのが絡んでいる可能性もなくはない、と思って、仮想ホストの設定をC:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.confに追記。
<VirtualHost *:80>
ServerName openpne3.localhost
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/OpenPNE3/web/"
DirectoryIndex index.php
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/OpenPNE3/web/">
AllowOverride All
Allow from All
</Directory>Alias /sf "C:/Program Files/PHP/data/symfony/web/sf/"
<Directory "C:/Program Files/PHP/data/symfony/web/sf/">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
仮想ホストの名前を使ってアクセスしてみます。
http://openpne3.localhost/pc_frontend_dev.php
これでも同じエラーになります。
いよいよエラーがアプリケーション由来っぽくなってきました。しかしテーブル定義とかSQLの問題であればともかく、SymfonyやOpenPNE3の中のことになってくると、これから始めようという身には掘るのが辛そう。
とりあえず、今晩はここでギブアップ。
このエントリ時点ではインストールに成功しませんでした。
この後の「Windows+Apache2.2+PHP5.2.6でOpenPNE3beta3」が成功時のエントリです。
----
WindowsでOpenPNE3インストール(2009.01.19)の問題がチケット#3458で修正されたとのことなので、最新のtrunkをチェックアウト。リビジョン10276と、修正が行われたリビジョン10236以降のリビジョンなのを確認のうえ、再試行。
c:\(略)\htdocs\OpenPNE3> symfony openpne:install
今回は最後までインストールが行きましたが、途中で次のようなエラーが出ています。
[propel-sql-exec] Failed to execute:
CREATE TABLE `profile_i18n`
(
`caption` TEXT default '' NOT NULL,
`info` TEXT,
`id` INTEGER NOT NULL,
`culture` VARCHAR(7) NOT NULL,
PRIMARY KEY (`id`,`culture`),
CONSTRAINT `profile_i18n_FK_1`
FOREIGN KEY (`id`)
REFERENCES `profile` (`id`)
ON DELETE CASCADE
)Type=InnoDB
[propel-sql-exec] SQLSTATE[42000]: Syntax error or access violation: 1101 BLOB/TEXT column 'caption' can't have a default value
[propel-sql-exec] Failed to execute:CREATE TABLE `navi`
(
`id` INTEGER NOT NULL AUTO_INCREMENT,
`type` VARCHAR(64) default '' NOT NULL,
`uri` TEXT default '' NOT NULL,
`sort_order` INTEGER,
PRIMARY KEY (`id`),
KEY `navi_I_1`(`type`)
)Type=InnoDB
[propel-sql-exec] SQLSTATE[42000]: Syntax error or access violation: 1101 BLOB/TEXT column 'uri' can't have a default value
[propel-sql-exec] Failed to execute:CREATE TABLE `navi_i18n`
(
`caption` TEXT default '' NOT NULL,
`id` INTEGER NOT NULL,
`culture` VARCHAR(7) NOT NULL,
PRIMARY KEY (`id`,`culture`),
CONSTRAINT `navi_i18n_FK_1`
FOREIGN KEY (`id`)
REFERENCES `navi` (`id`)
ON DELETE CASCADE
)Type=InnoDB
[propel-sql-exec] SQLSTATE[42000]: Syntax error or access violation: 1101 BLOB/TEXT column 'caption' can't have a default valueSome problems occurred when executing the task:
Read the logs to fix them
MySQLではTEXT型やBLOB型のフィールドにデフォルト値を指定しちゃダメです。
...あれ、これOpenPNE2の時にもレポートした記憶があるんだけど、trac.openpne.jpとかsns.openpne.jpの自分の日記には見当たらないな。MLとか?というかデジャブ?
このエントリ時点ではインストールに成功しませんでした。
この後の「Windows+Apache2.2+PHP5.2.6でOpenPNE3beta3」が成功時のエントリです。
----
WindowsでOpenPNE3のインストールを試みます。
対象は14日にリリースされたOpenPNE3 beta 3。ただしtrunkから最新版を取得。
結論から言うと、インストールできません。たぶん、インストールできないはずです。
■ 前提
Symfonyをセットアップしておきます。手順などは「symfony入門(1):symfonyで始めるPHPフレームワーク:CodeZine」を参考に。ただし、PEARでインストールできるsymfonyのstableが1.2を超えていましたので、stableをインストールしました。
■ インストール作業
手順はおおむね、リリースアナウンスからリンクされている「OpenPNE3alpha3 セットアップ手順」準拠。
まずApacheのドキュメントホームでOpenPNE3をチェックアウトします。
c:\(略)\htdocs> svn co https://trac.openpne.jp/svn/OpenPNE3/trunk OpenPNE3
OpenPNE3\config\ProjectConfiguration.class.php.sampleを同ディレクトリにProjectConfiguration.class.phpとしてコピーし、手順通り3行目を以下のように修正。
require_once 'C:/Program Files/PHP/PEAR/symfony/autoload/sfCoreAutoload.class.php';
次に、セットアップ手順にあるとおり(ただしデータベース名は日付など変えても良い)を作成。
そして、インストール。OpenPNE3\symfonyはUnix系のシェルスクリプトとして実行することを前提にしているので、「Symfony を Apache on Windows で使う」に倣ってOpenPNE3\symfony.batを作成。内容は全く同じでOKです。そして、OpenPNE3ディレクトリでコマンドプロンプトを開き、symfony(と入力すればsymfony.batのことになる)を実行。
c:\(略)\htdocs\OpenPNE3> symfony openpne:install
ちなみに、trunkだというのに後ろにデータベース設定などをつけてしまうと、以下のようなエラーになります(しばらくエラー理由に気付かなかった)。
Too many arguments ("openpne:install mysql://root:password@localhost/OpenPNE" given).」
正しく実行していると、実行中にデータベース名その他は入力を求められます。ここで、上記で作成したデータベース名、アクセス用のDBユーザ名、パスワードなどを入力すると先に進みます。
Choose DBMS (mysql, pgsql or sqlite)
mysql
Type database username
root
Type database password (optional)
jugemjugem
Type database hostname
localhost
Type database name
OpenPNE3
Type database socket path (optional)
The DBMS mysql
The Database Username root
The Database Password ******
The Database Hostname localhost
The Database Name OpenPNE3_trunk_20090119
The Database SocketIs it OK to start this task? (y/n)
y
そしてしばらくするとエラー。
Notice: Constant OPENPNE_VERSION already defined in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\OpenPNE
3\data\version.php on line 2
>> propel load data from "C:/Program File.../opAshiatoPlugin/data/fixtures"
>> propel load data from "C:/Program File...ns/opDiaryPlugin/data/fixtures"
>> propel load data from "C:/Program File...opFavoritePlugin/data/fixtures"
>> propel load data from "C:/Program File...ntroFriendPlugin/data/fixtures"
>> propel load data from "C:/Program File.../opMessagePlugin/data/fixtures"
>> propel load data from "C:/Program File...OpenSocialPlugin/data/fixtures"
>> propel load data from "C:/Program File.../opRankingPlugin/data/fixtures"
>> propel load data from "C:/Program File.../htdocs/OpenPNE3/data/fixtures"
>> sfPropelLogger SQLSTATE[HY000]: General error: 1364 Field 'is_unique' doesn't have a default valueUnable to execute INSERT statement. [wrapped: SQLSTATE[HY000]: General error: 1364 Field 'is_unique' doesn't have a default value]
■ 問題点(の予想)
エラーメッセージからすると、not nullな'is_unique'というフィールドに、値を指定しないでinsertをかけていると思われます。このフィールド名を持つテーブルは、OpenPNE3/data/sql/*を見る限り、profileテーブルだけ。定義は次のようになっています。
CREATE TABLE `profile`
(
`id` INTEGER NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) NOT NULL,
`is_required` TINYINT NOT NULL,
`is_unique` TINYINT NOT NULL,
`form_type` VARCHAR(32) NOT NULL,
`value_type` VARCHAR(32) NOT NULL,
`value_regexp` TEXT,
`value_min` INTEGER,
`value_max` INTEGER,
`is_disp_regist` TINYINT NOT NULL,
`is_disp_config` TINYINT NOT NULL,
`is_disp_search` TINYINT NOT NULL,
`sort_order` INTEGER,
PRIMARY KEY (`id`),
UNIQUE KEY `profile_U_1` (`name`)
)Type=InnoDB;
たしかにis_uniqueフィールドはnot nullで、defaultも設定されておらず、したがって値の指定が必須になりそうです。次に、このテーブルへのデータimportを指定していそうなOpenPNE3/data/fixtures/001_import_profile.ymlより。
Profile:
profile_sex:
is_required: 1
name: "sex"
form_type: "select"
value_type: "integer"
is_disp_regist: 1
is_disp_config: 1
is_disp_search: 1
sort_order: 110
(以下同様)
たしかにis_uniqueの値を指定せずにインポートを指示していそうです。以降も同様のレコードが続きます。
なので、ここでis_uniqueの指定を追加して試してみたいところですが、どんなデフォルト値になるべきなのか分からないのですね。動かしてれば何となく見当がつきそうだけど、そもそも動いてないので見当つかないです。
ということで、今回はここで試行終了。β4を待つことにします。リリースは...1月18日(日)予定...あれ?