アーカイブ

‘未分類’ カテゴリーのアーカイブ

[OSX] Snow Leopard移行メモ

2009 年 9 月 16 日 コメント 6,751 件

発売してすぐ買ったものの、2週間以上放置していたSnow Leopardをようやくインストールしました。移行手順をちょっとメモしておきます。

環境

  • MacOSX Leopard(10.5)からの移行
  • マシン: iMac(Early 2008)Core 2 Duo 2.4 GHz

外付けHDDにCarbon Copy Clonerでバックアップ

以下の外付けHDDを購入し、Carbon Copy Cloner でバックアップを作成しました。これで万が一の事があっても大丈夫。
Leopardがインストールされた起動ディスクは123GBほど使用していましたが、バックアップに3時間弱かかりました。おやすみ前の作業をおすすめします。なおCarbon Copy Clonerはドネーション(寄付)ウェアです。

起動ディスクを外付けHDDにまるごとバックアップ

起動ディスクを外付けHDDにまるごとバックアップ



バックアップが済んだら、念のためこのHDDから起動できるか確認しておきます。なおこのHDDの説明書には「OS起動はサポートされておりません」と明記されているので、くれぐれも自己責任でお願いします。

さらにTime Machineでバックアップをとっておく

実はCarbon Copy Clonerを使うのは初めて。それとOSXの移行アシスタントのほうがスムーズかも、という思いがあったので、Time Machineでもバックアップをとっておきました。

さらにさらに、Snow Leopardのインストールは別パーティションに

どこまで用心深いんだというかんじですが、起動ディスクの容量に余裕があったので、Leopardは残したままパーティションを分割し、Snow Leopardは別パーティションにインストールしました。
Disk Utilityを使えば既存のLeopardはそのまま、パーティションを分割できます。

Disk UtilityでSnow Leopard用のパーティションを追加します。

Disk UtilityでSnow Leopard用のパーティションを追加します。

Snow Leopardをインストール

ようやくSnow Leopardのインストールを開始。Leopard上からインストールを実行できる(DVD起動でない)ようになったので、だいぶ速いですね。
インストールオプションは

  • プリンタ: 「近くにあるプリンタ、および一般的なプリンタ」
  • 追加言語環境: 日本語のみ
  • その他: X11, Rosetta, QuickTime 7

を選択しました。

インストールオプション

インストールオプション

インストール直後にTime Machineから移行

インストールが終わりWelcomeムービーが流れると、「すでに Mac をお持ちですか?」画面が表示されます。今回はここでTime Machineから移行作業を実行しました。
いったんログインしてから移行アシスタントを実行することもできるのですが、その場合ログイン中のユーザーは復元することができません。別のユーザーを作るのも面倒なので、ログイン前に済ませてしまいました。

移行アシスタント

移行アシスタント

移行アシスタントで移行したもの、しなかったものは以下のとおりです。

移行したもの

  • 移行したもの
    • ユーザ
      • ミュージック、ピクチャなど
      • 「その他のファイルとフォルダ」(~/.emacsなどが対象になるらしい)
    • 設定
  • 移行しなかったもの
    • アプリケーション
    • 「<ドライブ名>上のその他のファイルとフォルダ」
      • (MacPortsで/opt以下にインストールしたものなどは再インストールしたい)

注意事項

今回は既存のLeopardをそのまま残し、さらに移行アシスタントでDockやメニューバーの設定を復元しました。こうした場合、Snow LeopardでDockに表示されるアイコンがLeopard上のアプリケーションを参照したままとなります。
インストール直後に設定しなおすことをおすすめします。

移行を終えて

今のところの感想としては、

  • よい
    • OSの起動が速い
    • Finderが多少キビキビしている
    • 3,000円程度というお得感
  • 気になる
    • VirtualBoxでWindows XPの画面が乱れる
    • MacPortsでruby, Railsをインストールしたが、マイグレーションなどのRakeタスクが動かなかった(詳細未調査)

といったところでしょうか。全体的にはおおむね快調です。

参考

カテゴリー: 未分類 タグ:

[MySQL] NOT NULLかつDEFAULTなしの列を追加した場合、データタイプデフォルト値が設定される。

2009 年 9 月 15 日 コメント 16,293 件

MySQL(5.0系)で、すでにレコードが存在するテーブルにNOT NULLかつDEFAULTなしの列を追加してもエラーにならなかった。きちんと理解していないので調べておく。

以下のテーブルを作成し、レコードを追加しておく。

mysql> CREATE TABLE users (id INTEGER PRIMARY KEY);
mysql> DESC users;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    |                | 
+-------+---------+------+-----+---------+----------------+
mysql> INSERT INTO users VALUES(1);

NOT NULLでDEFAULTなしの列を追加してみる。

mysql> ALTER TABLE users ADD (name VARCHAR(255) NOT NULL, 
age INTEGER NOT NULL, created_at DATETIME NOT NULL);

エラーにならず、以下の値が設定された。

mysql> SELECT * FROM USERS;
+----+------+-----+---------------------+
| id | name | age | created_at          |
+----+------+-----+---------------------+
|  1 |      |   0 | 0000-00-00 00:00:00 | 
+----+------+-----+---------------------+

どうやら「データタイプデフォルト値」が設定されるもよう。
これは「ストリクトSQLモード」が有効な場合でも同じ結果となる。試してみる。

-- いったん列を削除
mysql> ALTER TABLE users DROP name;
mysql> ALTER TABLE users DROP age;
mysql> ALTER TABLE users DROP created_at;
 
-- ストリクトSQLモードを有効に
mysql> SET sql_mode = 'STRICT_ALL_TABLES';
mysql> SELECT @@sql_mode;
+-------------------+
| @@sql_mode        |
+-------------------+
| STRICT_ALL_TABLES | 
+-------------------+
 
-- ストリクトSQLモードでもエラーにならない
mysql> ALTER TABLE users ADD (name VARCHAR(255) NOT NULL, 
age INTEGER NOT NULL, created_at DATETIME NOT NULL);
mysql> SELECT * FROM USERS;
+----+------+-----+---------------------+
| id | name | age | created_at          |
+----+------+-----+---------------------+
|  1 |      |   0 | 0000-00-00 00:00:00 | 
+----+------+-----+---------------------+

せめてストリクトSQLモードが有効な場合にはエラーにしてほしいですね。要注意です。

参照ドキュメント:

カテゴリー: 未分類 タグ:

[MySQL] int(11)の11は最大桁数ではない

2009 年 9 月 1 日