カテゴリ: 仕事, PCサポート

ページ: << 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 27 >>

データ移行メモ

パーマリンク 2008/11/28 23:52:31 著者: kumaold メール
カテゴリ: 仕事, サーバ関係

開発鯖から本番鯖へのデータ移行に取りかかったので方法のメモ書き。


データバックアップ(データディレクトリにw権限がない場合)

gzip -rc Foldername > Filename.gz

データリストア(圧縮ファイルは消える)

gunzip Filename.gz


データベースの移行には、pg_dumpコマンドにて。
このコマンドを使うと一発でフィールド構造やデータなどを一発移行できます。


DBデータバックアップ(互換性などのため、-O -d オプションを推奨)

pg_dump DBName | gzip > Filename.gz

DBデータリストア(あらかじめDBを作成しておく)

gunzip -c Filename.gz | psql DBName -h Hostname -U Username


こんな感じで比較的短時間のうちにデータ移行が完了しました。

あとは問題が無いかチェックして、最後の手直し。




PostgreSQL完全機能リファレンス―実行例を通して「理解」を深める。PostgreSQL完全機能リファレンス―実行例を通して「理解」を深める。
鈴木 啓修

秀和システム 2006-11
売り上げランキング : 103511
おすすめ平均

Amazonで詳しく見る
by G-Tools

完成までもう少し!

パーマリンク 2008/11/27 23:25:53 著者: kumaold メール
カテゴリ: 仕事, サブカルチャー

早いもので11月もそろそろ終わろうとしています。

しばらく前から開発に取り組んでいる「美容室案内ネット一六社」も、あと最後の手直しだけというところで急に別の仕事で忙しくなるとは・・・


来週中くらいには完全に本番環境に移行して、正式稼動できるように頑張ろ。

type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

第17回高蔵寺SE勉強会

パーマリンク 2008/11/16 23:00:00 著者: kumaold メール
カテゴリ: 仕事, 勉強会など

#またまたブログを丸1週間分まとめて投稿します。


本日は、第17回高蔵寺SE勉強会を開催しました。

今回は、events.php.gr.jpにてに募集を行ったところ、13人ほど集まりました。
遠方から来てくださった皆様、どうもありがとうございました。


まずは宿題。
今回はカレンダーヘルパーを作って(改造して)みようということでしたが、久々に張り切ってすべて1からコーディングをしてみました。


苦労したところは言うまでもなく曜日の移動機能。
これのおかげでコーディング量とバグが大幅増加で半日以上要しました。

そのほかは、表示形式を変えたり、CSSでデザインを変更しやすいようなカスタマイズ性の高いつくりを意識して作りました。


設置サンプルはこちら

[CalendarHelper]

<?php
/**
 * CalendarHelper
 *
 * @modifiedby      $LastChangedBy: kuma $
 * @lastmodified    $Date: 2008-11-15 23:00 $
 */
class CalendarHelper extends AppHelper
{
    /*
     * タイトル部の出力フォーマット指定
     */
    var $titleFormat = "%d年%d月";
    
    /*
     * 日付の出力フォーマット指定
     */
    var $dayFormat = "%d";
    
    /*
     * 曜日の出力フォーマット指定 ("Sun", "Mon", "Tue", ...)
     */
    var $weekFormat = array("日", "月", "火", "水", "木", "金", "土");
    
    /*
     * CSSの曜日別クラス名指定 ("sunday", "monday", "tuesday", ...)
     */
    var $className = array("sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday");
    
    /*
     * 週の開始曜日オフセットを指定 (デフォルト[日~土] 0, 0 ~ 7)
     */
    var $weekOffset = 0;
    
    /*
     * 各種作業領域
     */
    var $outData = "";
    var $todayId = "";
    
    /*
     * 指定した1月分のカレンダーを生成
     * @param int $year 西暦年
     * @param int $month 月
     * @return string カレンダーHTML
     */
    function makeCalendar($year = null, $month = null)
    {
        //日付が存在するかチェック。未指定なら今日の日付
        if (!checkdate($month, 1, $year)) {
            $now = getdate();
            $year = $now['year'];
            $month = $now['mon'];
            
            $today_flg = true;
        }
        
        //月の最初の日の曜日を取得
        $week = date('w', mktime(0, 0, 0, $month, 1, $year));
        $dayTmp = 1;
        
        //カレンダー生成の元となる配列を生成
        do {
            $calendar[$week] = $dayTmp;
            $week++;
            $dayTmp++;
        } while (checkdate($month, $dayTmp, $year));
        
        
        //以下、カレンダー実体の出力
        $this->outData = '<table class="calendar">' . "\n";
        $this->outData .= "<caption>" . sprintf($this->titleFormat, $year,$month) . "</caption>\n";
        
        //曜日列の表示
        $this->outData .= "<tr>";
        for ($i = 0; $i <= 6; $i++) {
            //曜日の順序調整
            $weekTitle = $this->weekFormat[($i - $this->weekOffset + 7) % 7];
            $this->outData .= '<th class="weektitle">'. $weekTitle . "</th>";
        }
        $this->outData .= "</tr>\n";
        
        //日付部分の出力 (以下、1行ごとに一度バッファに溜める)
        $weekTmp = "<tr>";
        //オフセット分差し引いたところから、データの終端かつ右端まで繰り返す
        for ($i = (0 - $this->weekOffset); $i < $week || ($i % 7 != 0); $i++) {
            //当該日付が存在すれば表示
            if (isset($calendar[$i])) {
                //本日表示フラグがあれば本日チェックをする
                if (isset($today_flg)) $this->_todayCheck($calendar[$i]);
                $weekTmp .= sprintf('<td class="%s"%s>%s</td>', $this->className[($i + 7) % 7], $this->todayId, sprintf($this->dayFormat, $calendar[$i]));
            } else {
                $weekTmp .= "<td></td>";
            }
            //次の曜日が指定曜日なら改行
            if (($i + 1 + $this->weekOffset) % 7 == 0) {
                //データチェック&挿入
                $this->_insertRow($weekTmp . "</tr>\n");
                //バッファをクリア
                $weekTmp = "<tr>";
            }
        }
        //データチェック&挿入
        $this->_insertRow($weekTmp . "</tr>\n");
        $this->outData .= "</table>\n";
        
        //ビューに出力内容を返す
        return $this->output($this->outData);
    }
    
    /*
     * 1行のに有効データがあれば連結 (無駄な空欄防止)
     * @param string $weekTmp 1行分の作業データ
     */
    function _insertRow($weekTmp)
    {
        if (trim((strip_tags($weekTmp))) != "") {
            $this->outData .= $weekTmp ;
        }
    }
    
    /*
     * 本日の日付であればCSS用にidタグを付加
     * @param int $today チェックする日付
     */
    function _todayCheck($today)
    {
        $now = getdate();
        if ($now['mday'] == $today) {
            $this->todayId = ' id="today"';
        } else {
            $this->todayId = "";
        }
    }
}

?>

[View]

//今月のカレンダーと本日を強調(色彩はCSS)
<?php
    e($calendar->makeCalendar());
?>

//2008年1月のカレンダーを表示
<?php
    e($calendar->makeCalendar(2008, 1));
?>

//2008年1月の曜日を右に2日移動したカレンダーを表示
<?php
    e($calendar->makeCalendar(2008, 1, 2));
?>


午後からはほとんど発表中心で進行しました。

今回は外部ゲストの方にも発表していただき、新しいことも色々と学ぶことができました。

発表内容はこんな感じ。

  • CakePHP開発事例の紹介
  • CakePHPとテスト
  • CakePHPで携帯サイトを作るためのテクニック


そのあとはLT(ライトニングトーク)を行いました。

  • CakePHPでAjax入門
  • CakePHPとFlashの連携
  • CakePHP簡単問合せフォームの作り方
  • CakePHPの多言語化対応


このうち、CakePHPの多言語化対応については、いままでのCakePHP日本語化などの経験から苦労した点や、ポイントなどについて発表させていただきました。


やはり、外部の方がいると新鮮でいろいろな意見を聞くことができてよかったです。

今後とも開催実績を積み重ねて、多くの人に来てもらえると嬉しいです。

また開発合宿みないなのもやりたいなぁ。

type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

<< 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 27 >>

一六社で働くITエンジニアのブログ。

普段はWeb系システム開発と地元のPCサポートをやってます。いつの間にやら会社に8年目。
技術ネタ中心に日々の仕事と生活と趣味やらを気が向いたら書いてます。

2017年3月
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

検索

XMLフィード

16ブログ     powered by b2evolution free blog software