postgreSQLで、authパッケージのマイグレーションを実行できない

330 views
Skip to first unread message

高橋永

unread,
Oct 5, 2014, 1:12:11 AM10/5/14
to fuelp...@googlegroups.com
初めまして。fuelPHPというかフレームワーク自体が初心者の者です。

postgreSQLでWebアプリを構築しようと思っています。

ormauthを使ってみようと思い、
oil refine migrate --packages=auth
を実行してみましたが、下記のようなエラーが出ました。

//

Uncaught exception Fuel\Core\Database_Exception: SQLSTATE[42601]: Syntax error: 7 ERROR:  syntax error at or near "("
LINE 2:  "id" int(11) NOT NULL AUTO_INCREMENT,
                 ^ with query: "CREATE TABLE IF NOT EXISTS "users_clients" (
        "id" int(11) NOT NULL AUTO_INCREMENT,
        "name" varchar(32) DEFAULT '' NOT NULL,
        "client_id" varchar(32) DEFAULT '' NOT NULL,
        "client_secret" varchar(32) DEFAULT '' NOT NULL,
        "redirect_uri" varchar(255) DEFAULT '' NOT NULL,
        "auto_approve" tinyint(1) DEFAULT 0 NOT NULL,
        "autonomous" tinyint(1) DEFAULT 0 NOT NULL,
        "status" enum("development","pending","approved","rejected") DEFAULT 'development' NOT NULL,
        "suspended" tinyint(1) DEFAULT 0 NOT NULL,
        "notes" tinytext NOT NULL,
        PRIMARY KEY "id" ("id")
);"

//

恐らくこのSQL文がpostgreSQLのものではないからだと思うのですが、これはユーザー側でSQLの出力メソッドを書き直したりする必要があるのでしょうか?
そうでないとすると、どんな原因が考えられますか?

fuel->app->config->db.phpは以下の通りです。

return array(
'default' => array(
'type'           => 'pdo',
'connection'     => array(
'dsn'            => 'pgsql:host=localhost;dbname=test01',
'username'       => 'xxx',
'password'       => 'xxx',
'persistent'     => false,
'compress'       => false,
),
'identifier'     => '"',
'table_prefix'   => '',
'charset'        => NULL,
'enable_cache'   => true,
'profiling'      => false,
'readonly'       => false,
),
);

環境は、
CentOS 6.5
PHP 5.5.17
postgreSQL 9.3(但しなぜかphpinfo()で見るとpdo_pgsqlのバージョンは8.4.20)
fuelPHP 1.7.2
です。

よろしくお願いいたします。

kit.t

unread,
Oct 5, 2014, 7:49:55 AM10/5/14
to fuelp...@googlegroups.com
ドキュメントにも以下の一文があるように、DBクラスが引数として受け付けているとしても完全にサポートはしていません。
各ドライバにおいて、すべての機能をサポートしているわけではないことに注意してください。
 
データベース操作のうち、テーブルの作成などはDBUtil クラスが受け持っていますが、これをpostgreSQLに自力で対応させるのはかなりの手間がかかると思います。

同様の環境で作成した事がありますが、その時はMySQLでマイグレーションを実行し、テーブル構造をpostgresにコンバートして対応しました。
その他の更新・取得などのSQLは数箇所の修正で対応できました。

2014年10月5日日曜日 14時12分11秒 UTC+9 高橋永:
ormauthを使ってみようと思い、

これだけが目的ならばMySQLを使用するのが良いかと思います。 

soudai sone

unread,
Oct 5, 2014, 9:19:01 PM10/5/14
to fuelp...@googlegroups.com
曽根です。

SimpleAuthの場合ですがこちらが参考になると思います。


基本的にはDDLの書き換えはCREATE文なのでpgadmin3などで該当のテーブルを作った方が楽かなと思います。

2014年10月5日日曜日 20時49分55秒 UTC+9 kit.t:

高橋永

unread,
Oct 5, 2014, 9:37:01 PM10/5/14
to fuelp...@googlegroups.com
kit.tさん、曽根さん

postgreSQLを使うなら、やはりSQL生成に手を突っ込む必要があるということですね。
単なる私の設定ミスだったら良かったのですが(笑)


基本的にはDDLの書き換えはCREATE文なのでpgadmin3などで該当のテーブルを作った方が楽かなと思います。


そうかもしれません 。検討してみます。

ありがとうございます。
Reply all
Reply to author
Forward
0 new messages