postgresqlでデータの流し込み
データを流し込む方法として、ダンプ/リストアを使う方法と、エクスポート/インポートを使う方法をメモ。
ダンプ&リストア
# ダンプ # テーブル定義のみダンプしたい場合は「-s」、データのみダンプしたい場合は「-a」を付ける # 下記コマンドは、データのみダンプする場合 pg_dump [-h ホスト名] -U ユーザ名 -a -t テーブル名 データベース名 > data.sql # 適時ダンプファイルを修正(ユーザ名の置換とか) # リストア # 単一トランザクション内でスクリプトを実行したい場合は「-1」を付ける psql [-h ホスト名] -d データベース名 -U ユーザ名 -f data.sql -1
ちなみに、psqlはSQLファイルを実行するコマンドなので、下記のようなSQLファイルを別途用意してもいい。
create table city ( city_id serial PRIMARY KEY NOT NULL, country_code text NOT NULL, pref_code text NOT NULL, pref_name text NOT NULL, city_code text NOT NULL, city_name text NOT NULL ); (略)
エクスポート&インポート
# エクスポート psql [-h ホスト名] -d データベース名 -U ユーザ名 -A -F, -c "select * from テーブル名" > data.csv psql [-h ホスト名] -d データベース名 -U ユーザ名 -A -F $'\t' -c "select * from テーブル名" > data.tsv # csv/tsvファイルの編集(data.csv/tsvのカラム名/レコード数に関する記述を削除) # インポート
# コマンド文字列(「-c」に続く文字列)が複数のSQLコマンドを含む場合、それらのコマンドは1つのトランザクションで処理される
# トランザクションを複数に分ける場合は、BEGIN/COMMITコマンドを明示的に追記する psql [-h ホスト名] -d データベース名 -U ユーザ名 -c "\copy テーブル名 (カラム1, カラム2, ...) from data.csv with delimiter ','" psql [-h ホスト名] -d データベース名 -U ユーザ名 -c "\copy テーブル名 (カラム1, カラム2, ...) from data.tsv with delimiter '(ターミナルで「Ctrl + v + Tab」)'"
古いAndroidアプリをバージョンアップすることになった人へ
はじめに
eclipseで作成されたAndroidアプリの開発環境を構築する際の流れです。
利用しているライブラリによって、多少作業が増えたり減ったりすると思います。
「Android Studio」に移行できた人は読む必要がないので、戻るボタンをどうぞ。
お察しの通り、「Android Studio」の話は出てきません(移行を試みましたが…)。
1. 「eclipse with adt」のダウンロード
本家のダウンロードページが見つからないので、別途提供元を探す必要がある。
補足資料 1. — 補足資料 1 documentationからダウンロードする。
パスが長すぎる場合、解凍時に問題が発生する(「エラー 0x80010135 パスが長すぎます」が発生する)ため、ダウンロード先は「C:\(ドライブ直下)」等を指定する。
2. 「SDK Manager」で各ツールをインストール
アプリを動かすのに最低限必要なツール(「Android4.4」「Google API」「usb driver」等)をインストールする。
3. プロジェクトをインポート
バージョン管理の有無によって対応が異なる。
- gitbuket等でバージョン管理されていない場合
Eclipseにソースコードを取り込むには - 逆引きAndroid入門に倣って、該当ディレクトリのインポートを行う。
ちなみに、gitbucket等でバージョン管理したい場合は、
[Git Repository Exploring](Perspective)を開いて、「Clone a git repository」をクリックする。表示されるウィンドウにしたがって、作成済みのリモートリポジトリに関する情報(http clone url、ユーザ名、パスワード等)と、作成するローカルリポジトリの宛先を入力する。
上記で作成したローカルリポジトリと該当プロジェクトを関連付ける必要がある。該当プロジェクトを右クリックして[Team][Share Project…]を選択する。表示されるウィンドウで、上記で作成したローカルリポジトリを指定する。
管理対象としないリソース(/bin・/gen等)を.gitignoreに追記する。プッシュする際に、Gitに関する情報(ユーザ、メールアドレス)を設定すれば完了。 - gitbucket等でバージョン管理されている場合
メニュータブから[File][import][Git][projects from git]を選択する。表示されるウィンドウにしたがって、既存のリモートリポジトリに関する情報(リモート先、ユーザID/パスワード)を指定する。
その他の画面は、デフォルトのまま「next」をクリックしていけば完了。A.01. Git リポジトリからのプロジェクトのインポート · mixi-inc/AndroidTraining Wiki · GitHub
4. 「SDK Manager」でインストールできない各ツールをダウンロード&インポート
基本的には、前開発者が利用していたものを共有してもらう。
それができないようであれば、本家またはその他の提供元からダウンロードする。
バージョンによって配布方法やAPIが変更されるため、そこを踏まえたうえでダウンロードを行う必要がある。
例. 「Google Play Services」をダウンロード&インポート
「google maps api」を利用しているアプリの場合、「google play services(端末にインストールされている「Google Play 開発者サービス」というAPKの機能を呼び出すためのインターフェース群)」が必要になる。
- ダウンロード
バージョンによって、「google play services」の中身が異なる。
Eclipse 用の Google Play Services Library のありか - Qiitaあるバージョンから、「libproject」がなくなっている。
android - Missing "<sdk>/extras/google/google_play_services/libproject" folder after update to revision 30 - Stack Overflowまた、あるバージョンから、いくつかのパッケージが廃止されている。
com.google.android.gms.location.LocationClientがimportできない -でじうぃき最新バージョンをダウンロードして実装側でその差分(中身が違うとかAPIが変更されたとか)を埋めるか、前開発時に利用していたバージョンをダウンロードしてそのまま利用するか。
今回は後者で対応する。
旧バージョンのダウンロードリンクを利用して、該当バージョンを取得する。
android - Missing "<sdk>/extras/google/google_play_services/libproject" folder after update to revision 30 - Stack Overflow
java - How to download older google play services? - Stack Overflow -
インポート
[ファイル][新規][その他][Android][既存コードからのAndroidプロジェクト]を選択する。
表示されるウィンドウで、「プロジェクトをワークスペースにコピー」にチェックを付け、「google-play-services_lib」を指定して、対象ライブラリをプロジェクトとしてインポートする。「Package Exploer」の「google_play_services_lib」を右クリックし、[Properties][Android][Project build target]を選択する。該当するAPIにチェックを入れる。
「Package Exploer」の該当プロジェクトを右クリックし、[Properties][Android][Project build target]を選択する。「Google API」にチェックし、「Library」に上記でインポートした「google_play_services_lib」を追加する。
5. 4のツール関連の設定
認証周りで作業が必要になったりする。
例. 「Google Maps APIキー」利用に関する設定
「Google Developers Console(https://console.developers.google.com/?hl=JA)」にログインする。
「認証情報」より対象のAPIキーをクリックし、パッケージ名とフィンガープリントの追加を行う(フィンガープリントは、[Window][preference][Android][Build]から確認する)。
6. エラー対応
逐一調べていくしかない
Eclipseでプロジェクトフォルダに「!」マークが出た時の対処法 - しろかい!
一見意味のにないように思えて、実際にやってみると解決してしまうことがある。
上の作業でいえば、ライブラリの紐づけを一度外してもう一度付けたら…(もうよく分からない)。
おわりに
泥臭さ
EclipseWithADTに関するあれこれ
plugin
- Market place
ない場合があるので
http://qiita.com/yaeda/items/0434c2e75abb7b0d35d4 - vrapper
けっこう網羅されてる - color theme
見栄え - Overview feature
SublimeTextのMiniMap的な
settings
- 色
[General][Appearance][Color Theme] 「Solarized dark」 - 文字
[General][Appearance][Colors and Font] 「フォントConsolas、サイズ10」 - 行数/スベース
[General][Editors][Text Editiors] 「show line number/show space character」にチェック - 補完
[Window」][Preferences][Java][Editor][Content Assist] 「自動有効化遅延」の値を80、
「Javaの自動有効化トリガー」を「.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_」
function
- Quick Access
とりあえずここにキーワード入れれば、何かしらがヒットする - Outline
該当クラスの構成がツリー形式で表示される - Bookmark
手掛かりとなる箇所に残していく
行数右クリック[Add Bookmark...] - Log cat
ログ
keybind
- 名前変更
Alt + Shift + r - ファイル/リソース検索
Ctrl + Shift + r - ファイル(ある文字列含む)検索
Alt + a + f - クラス/インタフェース等の検索
Ctrl + Shift + T - カーソル位置のクラス、インタフェース、変数等の宣言場所へ移動
F3 - 呼び出し階層(呼び出し先一覧)を開く
Ctrl + Alt + h - カーソル位置のクラスの継承関係を表示
F4
- 戻る
Alt + ←
other
- 端末の安全な取り外し方
Android 端末側の設定で、[開発][USBデバック]のチェックマークを外す
とあるサービスの開発環境作成
はじめに
ec2で動いているものを物理サーバで再現した時にやったことをメモ(サーバーコピーで済むならそれに越したことはない)。
本番環境の設定を地道に調べていった感じ。
PHPのバージョン、「/usr/lib64/php/modules/」の中身、その他設定ファイルとか(php.ini/httpd.conf等)。
アプリケーション基盤の移行
テストサーバー(ステージング環境)で動いているアプリケーションのディレクトリ構造(「/var/www/」配下)を確認し、ローカル(開発環境)に持ってくる。
その際に、git等でバージョン管理されているディレクトリを確認する。
利用ツールのインストール
ツール群(apache/php/smarty/postgre/Redis等)を把握して、インストール有無を確認したうえでそれぞれインストールする。
例.
smarty等 → 「/usr/share/php/」をコピペ
php関連 → 「yum -y install php php-mbstring php-pdo php-pgsql php-devel php-mbstring php-pdo php-pgsql php-pecl-yaml.x86_64 php-pecl-apc.x86_64 php-domxml-php4-php5.noarch php-gd.x86_64」
設定ファイル(アプリケーション側)の編集
アプリケーションとツールの接続を修正する
例.
「/smarty/configs」配下のファイル(postgre接続に関する設定)」、「server_list.php(Redis接続に関する設定)」を修正する。
設定ファイル(ツール側)の編集
ツールの挙動を修正する
例.
Apache → 「/etc/httpd/conf/httpd.conf」「/etc/httpd/conf.d/rewrite.conf(アプリケーションのルーティング機能)」「/etc/httpd/conf.d/*.conf」
PHP → 「/etc/php.ini」
Postgresql → 「/var/lib/pgsql/data/postgresql.conf(postgreのクライアント認証、max_connections調整)」「/var/lib/pgsql/data/pg_hba.conf(postgreのクライアント認証)」
アプリケーション/ツールの調整
本番環境用の挙動を、開発環境用に修正する
例.
アプリケーション → メール送信機能(アカウント登録/APIキー発行時にその旨を伝えるメールが飛ぶ)の無効化
ツール → postgresqlのリストア(+ダンプファイル内のユーザ名置換等)、
smartyのアクセス権限変更(chown apache:apache smarty/templates/、chown apache:apache smarty/templates_c/)
SublimeTextで利用(を検討)しているパッケージ群
探し方
https://packagecontrol.io/ のNew、Trending, Popular
利用中
- Package Control
基本 - SFTP
パネルが開かない結果、同期有無の判断を勝手に行うことがある(「(Select via quick panel) No」がコンソールに表示される)。
パネル表示を行うパッケージ(ConvertToUTF8等)の設定を行い、パネル表示が重ならないように調整する。 - SideBarEnhancements
サイドバーの拡張 - All Autocomplete
補完強化 - ConvertToUTF8
UTF8に統一 - SyncedSideBar
指定したファイルとサイドバーのカーソル位置が連動 - Spacegray
見栄え - Vintageous
Vimmer、「Ctrl + v」からの「Shift + i」 - Alignment
「Ctrl + Alt + A」でインデント位置を揃える
対象となる記号に関する設定{
"alignment_chars": [ ":", "=", "=>" ],
"alignment_space_chars": [ ":", "=", "=>" ],
}
-
BracketHighlighter
サーチ範囲を限定しないよう設定(他にも強調表示の形状や、ブラケットを判別する条件などを設定可能){
"ignore_threshold": true
} - Pretty JSON
JSONの整形 -
Incrementor
連番の入力、詳しくはhttps://github.com/born2c0de/Incrementor
[Ctrl + Alt + Shift + H] _ → \i -
LaTex Word Count
文字数数えたり -
DocBlocker
Docコメントの補完 -
jQuery
補完 -
SublimeLinter-php
補完
php.exeをPATHに通す -
SublimeLinter-jshint
補完
node.jsインストール、npm install -g jshint、npm update -g jshint -
SublimeLinter-csslint
補完
npm install -g csslint -
SublimeLinter-html-tidy
補完
http://www.paehl.com/open_source/?HTML_Tidy_for_HTML5、tidy.exeのパスを通す
検討中
- Elastic Tab
編集時にタブを揃える
[*.php]
indent_style = tab
[*.js]
indent_style = tab - Local History
Users\ユーザー名\.sublime\history - SublimeREPL
irbとかpython的なやつ - Terminal
"terminal": "C:\\Win~\\cnd.exe" - BoundKeys
List bound keys
キーマップの状態(被ってるやつとか)を俯瞰できる、
固まるから使ってない - EditorConfig
異なるエディター/IDE間で共通するコーディングルールを規定する.editorconfig - Emmet+Hayaku
- View In Browser
Ctrl+Alt+Vキー(Win) - DataConverter
CSV形式のデータをさまざまな形に変換
範囲選択後、実行 - FindKeyConflicts
「BoundKeys」で事足りる気がする(があっちは固まるし。。。)、
コマンドパレットから「FindKeyConflicts: All Conflicts」を起動
[Key Bindings- User]を編集 - Project Manager
プロジェクトごとに*.sublime-projectファイルを生成して管理する - GitGutter
差分の視覚化 - Trimmer
空白の削除
SublimeTextでよく利用する機能
SublimeTextの便利な機能をまとめた。
- とにかくあれが使いたい
「Ctr+Shi+p」 + キーワード - 全プロジェクトの中から、あるファイルを検索したい
「Ctr+p(Goto Anything)」 + ファイル名 - あるプロジェクトの中から、該当文字列が含まれるファイルを検索したい
「Ctr+Sht+F(Find File in ...)」 + キーワード - あるプロジェクトの中から、シンボル(クラス、関数、定数など)を検索したい
「Goto Symbol In Project」 + キーワード - あるファイルの中から、シンボル(クラス、関数、定数など)を検索したい
「Ctr+p(Goto Anything)」 + @(Goto Symbo)キーワード - あるファイルの中から、文字列を検索したい
「Ctr+p(Goto Anything) 」 + #(Search Word)キーワード - 定義元を確認したい
文字列選択 + F12(Goto Definition)
「Alt + -」で戻れる(「Alt + Sht + -」) - ブックマーク
Ctrl + F2(登録、再度押すと解除)
F2キー(ジャンプ)
Ctrl + shift + F2(全て解除) - 画面分割したい
View Layout - 同ファイルを新規タブで開きたい
[File] [New View Into File] - インストールしたパッケージ群を共有したい
Userフォルダ(Sublime Text > Preference > Browse Packages...)を丸コピ - 起動したい
subl . - キーバインドを変更したい
適時「FindKeyConflicts」を利用しつつ、各設定ファイルの編集