2014年03月16日

ローカル環境に本番データをリストア

Google App Engine の本番のデータをフルダンプして、ローカル環境(テスト環境)で使ってみようとしたところ、かなりはまってしまいました。。。
ローカル環境は、MacOS の Google App Engine です。

フルダンプ(バックアップ)自体は簡単で、
appcfg.py download_data 
 --url=http://xxx.appspot.com/_ah/remote_api 
 --filename=fulldump
とするだけ。※長いので折り返していますが、コマンド行では一行で書く必要があります。
格納されているデータの量に依存しますが、そこそこ時間はかかります。
Datastore Read Operationsがかなり上がるので、数多くのアクセスがあるサイトは要注意です。

はまったのはローカル環境へのアップロード。
正解は、まず
sudo appcfg.py upload_data 
 --url=http://localhost:8080/_ah/remote_api 
 --filename=fulldump  
 --application=dev~xxx
とすること。--application の appid の指定で dev~をつける必要があります。
dev~ なしの appid を指定すると、
google.appengine.api.datastore_errors.BadRequestError: app "dev~xxx" cannot access app "xxx"'s data
というエラーになってしまいます。

さらに重要なのが、Email の入力できちんと @gmail.com まで入れるということです。
そうしないと
[ERROR   ] Exception during authentication
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 3469, in Run
    self.request_manager.Authenticate()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 1332, in Authenticate
    remote_api_stub.MaybeInvokeAuthentication()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 740, in MaybeInvokeAuthentication
    datastore_stub._server.Send(datastore_stub._path, payload=None)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 423, in Send
    self._Authenticate()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 564, in _Authenticate
    super(HttpRpcServer, self)._Authenticate()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 360, in _Authenticate
    self._GetAuthCookie(auth_token)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 293, in _GetAuthCookie
    response.headers, response.fp)
HTTPError: HTTP Error 200: OK
[ERROR   ] Authentication Failed: Incorrect credentials or unsupported authentication type (e.g. OpenId).
というエラーが表示されてうまくいきません。

分かってしまえば簡単なことなのですが、かなりはまってしまい、
を参考に、Charles Proxy app などをインストールしたりしてしまいました。。。
言うまでもなく、Charles Proxy app をインストールしてもうまくはいきませんのでご注意を。

ラベル:GAE appcfg.py
posted by おちエン at 05:34| Comment(0) | GAE | このブログの読者になる | 更新情報をチェックする

2013年06月13日

jQuery2.0以上はIE8では動かない

普段、Chrome や Safari を使っていて Internet Explorer は使わなかったので知らなかったのですが、 jQuery2.0 以降では、 Internet Explorer 6, 7, 8 はサポートせずのようです。
You asked for it, you got it: jQuery 2.0 has arrived!

As promised, this version leaves behind the older Internet Explorer 6, 7, and 8 browsers.

仕事だったのでしょうがなく IE8 で動きを確認したところ、よりによって jquery.min.js でエラーになってしまい、 その原因を調べていて今更ながらこの情報を知るという。。。

それ以上に IE8 で「開発者ツール」というのができていて、Firebug 的なものができていたのに驚かされましたが。

IE8 などで jQuery が使いたい場合は、1.9.x などを使えば OK です。
ラベル:jquery javascript
posted by おちエン at 04:47| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年05月26日

MySQL で EUC-JP と UTF-8 の共存

前から使っている MySQL ですが、デフォルトの文字コードは EUC-JP になっています。

mysql>  show variables like 'character_set%';
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | ujis                                          |
| character_set_connection | ujis                                          |
| character_set_database   | ujis                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | ujis                                          |
| character_set_server     | ujis                                          |
| character_set_system     | utf8                                          |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+-----------------------------------------------+
この状態で UTF-8 の database を作りたいと思ったときに色々と面倒だったのでそのメモ。
database 自体は、database を作成する時に DEFAULT CHARACTER SET を指定すればよいだけでした。
CREATE DATABASE hoge DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
な感じ。
MySQL クライアントを使って上記で作った hoge を使う場合は --default-character-set=utf8 を指定。
$ mysql --default-character-set=utf8 -u user -p hoge
PHP から使う場合は、SET NAMES utf8 COLLATE utf8_general_ci という SQL を PHP から叩くというのが定石でしたが、現在は推奨されていないようです。
mysql_set_charset('utf8') を使うのが良いという話がありましたが、これも PHP5.5.0で非推奨になったらしいです。
詳しくは mysql_set_charset で。
推奨通りにやろうとするとなかなか面倒ではあります。
ラベル:MySQL
posted by おちエン at 20:50| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする

2013年05月19日

GAEで独自ドメイン

GAEで独自ドメインの設定の仕方をいつも忘れるので、備忘録。

まず、GAE の管理サイト(https://appengine.google.com/)にアクセスします。
独自ドメインを設定したい application を選択します。
メニューの Administration にある Application Settings をクリック。
ページの真ん中辺りに Domain Setup の Add Domain をクリック。

GAE で独自ドメインを使うためには Google Apps に登録する必要があります。
右のボックスの「Sign up for Google Apps Standard」をクリックすると、無料 Google Apps の登録ページに飛べます。
必要事項を入力して登録します。

登録が完了すると、ドメインの所有確認になるので、DNS の設定をして、所有権を確認させます。
; google
    IN  TXT "google-site-verification=xxxxxxxxxxxxxxxxxxxxxxxxxxx"
を入れて、DNS を再起動するだけです。
もちろん、DNS の Serial も変える必要はあります。
登録が完了したら、もう一度、GAE の設定ページに戻って、もう一度、Add Domain を押して、設定するドメインを入力。
残念ながら、ホスト名なしの URL、例えば google.com は GAE で使えません。
www.google.com というような形にする必要があります。
ホスト名を設定したら、再度、DNS を変更します。
www IN  CNAME   ghs.googlehosted.com.
というような項目を追加して、DNS を再起動。
設定した URL にアクセスして、サイトが見れれば完了です。
posted by おちエン at 14:39| Comment(0) | GAE | このブログの読者になる | 更新情報をチェックする

2013年05月07日

Redmine wiki の表での改行

Redmine の備忘録。
Redmine の wiki で表の中で改行したいということがあって、どうしたら改行できるのか調べてみました。
設定を変更しないとできないみたいです。
lib/redcloth3.rb に
ALLOWED_TAGS = %w(redpre pre code notextile)
というのがありますが、ここに br を追加し、
ALLOWED_TAGS = %w(redpre pre code notextile br)
としてしまいます。
ALLOWED_TAGS は使用できる HTML の設定なので、この設定により<br>がどこでも使えるようになります。
|hoge|ここで改行したい。<br>あああ|
と書けば、改行されます。続きを読む
posted by おちエン at 03:12| Comment(0) | その他 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。