2011年3月28日月曜日

MySQLでCSVをインポートする

MySQLでCSVをインポートするコマンド

LOAD DATA LOCAL INFILE
    "[インポートするファイル名]"
INTO TABLE
    [テーブル名]
FIELDS
    TERMINATED BY '[区切り文字]'
    ENCLOSED BY '[カラムの囲み文字]'
    ESCAPED BY '[エスケープ文字]'
    LINES
TERMINATED BY '[改行文字]'
;

で、取り込んだけど文字化け発生。
下記でDBの文字コード確認

show variables like 'character_set%';
character_set_databaseがlatin1になっているので、
alter database [DB名] character set utf8;
で、文字コードをUTF-8に変更。

無事、インポート完了。

2011年3月24日木曜日

symfonyを学習中 Vol.02

symfonyにデータベースの設定をしてみる。

基本的には、教えていただいたサイトの
http://www.symfony.gr.jp/docs/symfony1-docs/jobeet/ja/
を参考に実施。ORMはDoctrineを使用。
手順はバラバラにやってます。

Configを設定
symfony configure:database "mysql:host=[サーバーアドレス];dbname=[DB名]" [ユーザー名] [DBのパスワード]
DBを作成
symfony doctrine:build-db
おお!DBが出来てる!すごいすごい! テーブルスキーマの作成をする。 config/doctrine/schema.ymlを手動で編集する。 今回は簡単なユーザーマスタを作成。 テーブルは下記のような感じ ・ユーザーID ・パスワード ・ユーザー名 ・削除フラグ ・登録日時 ・更新日時 config/doctrine/schema.ymlの中身
MstUser: tableName: MstUser options: charset: utf8 columns: user_id: type: string(255) primary: true password: type: string(255) notnull: true user_name: type: string(255) notnull: true delete_flg: type: char(1) default: 0 notnull: true actAs: Timestampable: { }
下記部分が、登録日と更新日をsymfonyが管理してくれるらしい。 (自動でカラムが追加される。) --------------------------------- actAs: Timestampable: { } --------------------------------- 下記を入れないと、UTF8にならなかった。 (他に方法がありそうな感じ) --------------------------------- options: charset: utf8 --------------------------------- モデルを作成
symfony doctrine:build --model
下記、ファイルが作成される。
lib/model/doctrine/MstUser.class.php lib/model/doctrine/MstUserTable.class.php lib/model/doctrine/base/BaseMstUser.class.php
SQLを作成
symfony doctrine:build --sql
下記、ファイルが作成される。
data/sql/schema.sql
中身を見てみると
CREATE TABLE MstUser (user_id VARCHAR(255), password VARCHAR(255) NOT NULL, user_name VARCHAR(255) NOT NULL, delete_flg CHAR(1) DEFAULT '0' NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, PRIMARY KEY(user_id)) DEFAULT CHARACTER SET utf8 ENGINE = INNODB;
CREATE文が作成されている。 また、created_at/updated_atも定義されている。 SQLを実行してテーブルを作成
symfony doctrine:insert-sql

なんだか便利だけど、なれるまでかかりそう。

2011年3月22日火曜日

symfonyを学習中 Vol.01

下記を参考にsymfonyの環境づくり
http://symfony.xrea.jp/1.2/book/index.html
プロジェクトを作成
コマンドが1.4(?)から変わってるらしい。
symfony generate:project [プロジェクト名]
アプリケーション作成
php symfony generate:app [アプリ名]
サイトを参考にVirtualHostの設定 モジュール作成
php symfony generate:module [アプリ名] [モジュール名]
サイト確認
http://localhost/[アプリ名]_dev.php/[モジュール名]/index
状況によって環境を変える場合
web/[アプリ名]_dev.phpをコピー ファイル名をweb/[アプリ名]_[環境名].phpに変更 [アプリ名]_[環境名].phpの中身変更
$configuration = ProjectConfiguration::getApplicationConfiguration('[アプリ名]', '[環境名]', true);
apps/[アプリ名]/config/app.ymlを変更
[環境名]: mail: webmaster: test@testsite.com contact: test@testsite.com

symfonyって、もうVer2が出るのねん。