Project

General

Profile

Wiki » History » Version 11

keiji ono, 04/14/2026 10:09 AM

1 1 keiji ono
REPL起動   jlファイルを開いた状態で Shift+Enter または、"julia"と入れる
2
REPL終了 exit()を入れる
3
4
    bashからの実行
5
    jlファイル先頭に 「#!/usr/local/bin/julia」を記述しファイルのchmodをして実行権限を与えてから
6
7
    ./test.jl
8
9
python,php風だな
10
11
    REPLからの実行
12
13
    include("path to test.jl")
14
15
この場合、「#!/usr/....」はいらない
16
17
REPLで"pkg"プロントにするには"]"をタイプ。出るには"^C"で。
18
REPLでjlファイルをコンパイルするには
19
20
   include("file name")
21
22
23
一度コンパイルに成功するとそれがキャッシュにずっとあるので困る。以前はworkspace()というコマンドがあったみたいだが今は廃止されている。なので、replを再起動するしかないみたい。
24
2023/4/25現在
25
 repl起動でコンパイルされるが、repl起動後 include(..)で再コンパイルするとサクッと置き換えられるのでreplの再起動は必要ないみたい。
26
27
DataFramesの説明 ちょっと古いけど
28
https://sinhrks.hatenablog.com/entry/2015/12/23/003321
29
* Genieはこっちを見る
30
https://genieframework.com/docs/?
31
Genieのroute設定を削除するのはチュートリアルは古いので下記を実行する
32
33
  julia>routes()
34
4-element Vector{Genie.Router.Route}:
35
 [POST] /posttest1 => #31 | :post_posttest1
36
 [GET] /test1 => #11 | :get_test1
37
 [GET] /hello => #9 | :get_hello
38
 [GET] / => #7 | :get
39
40
  julia>Router.delete!(:post_posttest1)    ←delete!の引数がチュートリアルと違うから要注意
41
42 2 keiji ono
h3. Genieアプリの起動とストップ
43 1 keiji ono
44
 起動
45
  >cd (app dir)   ex. cd Watchtonight
46
  >bin/repl    or julia
47
  >up()                 ←shプロンプトでbin/serverでもサーバ起動はするが、Watchtonightサンプルの様に設定を読み込んだりする分にはup()でないといけないみたい
48
49
 ストップ
50
  ><ctrl+d> (windows/linux)
51
  ><cmd+d> (macos)
52
53
Genieで起動するサーバの設定は./config/env/*.jlだが、変更したらイニシャライズが必要なので以下を再実行する必要がある。←down()/up()だけでは反映されない。
54 2 keiji ono
serverのhost,portはenv配下を変えても反映されない。
55
routes.jlの最終行に以下を指定するといいらしい。
56
<pre>
57
up(port,server)
58
ex. up(8000,"0.0.0.0")
59
</pre>
60 1 keiji ono
61
別のやり方
62
https://genieframework.com/docs/genie/tutorials/Loading-Genie-Apps.html
63
64
    juliaプロンプトでアプリの場所にcd("...")で移動する
65
    pkgプロンプトにして "activate ."を実行する
66
    juliaプロンプトに戻って "using Genie"を実行する
67
    次に "Genie.loadapp()"を実行する
68
    最後に"up()"でサーバが起動する
69
70
APIKEYやpassword等は、.config/secrets.jlに書く。ここはgitignoreだから だそうだ。
71
ここに記載されたデータはアプリケーション名でアクセスできるそうだ。 ex. MyGenieApp.pass とかかな?
72
https://genieframework.com/docs/genie/tutorials/The-Secrets-File.html
73
* Genie Tips: How to get the serverresponse on Genie
74
https://stackoverflow.com/questions/68127425/how-to-collect-http-response-status-using-genie-jl-in-julia
75
76
julia> using HTTP
77
78
julia> response = HTTP.get("http://127.0.0.1:8000/try")
79
HTTP.Messages.Response:
80
"""
81
HTTP/1.1 200 OK
82
Content-Type: application/json; charset=utf-8
83
Server: Genie/1.18.1/Julia/1.6.1
84
Transfer-Encoding: chunked
85
86
{"message":"Welcome"}"""
87
88
julia> response.status
89
200
90
91 3 keiji ono
h3. 開発環境のもろもろ
92 4 keiji ono
93
v3.0リリース時の開発環境のDBアクセス方法
94
95
-postgresql
96
sudo -u postgres psql -d <db name>
97
ex. Sudo -u postgres psql -d template1
98
99 10 keiji ono
backupで"pg_dump: error: ソケット"/var/run/postgresql/.s.PGSQL.5432"のサーバーへの接続に失敗しました"と出るときはpsqlでやってみよう。
100
sudo -u postgres pg_dump -d postgres > pgbackup0414.dump
101
102
uninstall
103
install packageの確認
104
dpkg -l | grep postgres
105 11 keiji ono
106 10 keiji ono
動いていたら止める
107
sudo service postgresql stop
108 11 keiji ono
109 10 keiji ono
ファイルと設定を完全に削除する
110
sudo apt --purge remove postgresql postgresql-*
111
112 4 keiji ono
-mysql
113
mysql -u user -p<password> <db name>
114
ex. mysql -u user -puserpasswd mysql
115
116
-redis
117
redis-cli
118
119
^mongodb
120
mongosh
121
122
123 1 keiji ono
PostgreSQL * sudo -u postrges psql
124
125
version確認方法
126
     sudo apt info postgresql
127
128
  またはpsqlで接続後、下記を実行
129
       select version();
130
131
  現状(2023/11/13)の開発マシンでは
132
       PostgreSQL 14.9 (Ubuntu 14.9-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
133
134
ubuntu22ではsocketが/var/run/postgres配下に作成される。libPQ.jlからは/tmp配下にあることが期待されているようなので、postgresql.confを変更する必要がある。
135
/etc/postgresql/14/main/postgresql.conf
136
137
# 2022/10/11 changed here from /var/run/postgresql -> /tmp
138
#unix_socket_directories = '/var/run/postgresql'        # comma-separated list of directories
139
unix_socket_directories = '/tmp'        # comma-separated list of directories
140
141
142
pg_ivmのインストールのために、postgresの各.hファイルが必要になるが、postgresのソース場所をライブラリリンク設定するのがめんどくさいときは、postgres-serverをインストールすると自動的に入るからいい感じ。
143
その後、pg_ivmをmakeすればいい
144
145
sudo apt install postgresql-server-dev-16
146
make USE_PGXS=1
147
sudo make USE_PGXS=1 install
148
149
150
pg_ivmインストール後の設定は下記参照
151
https://qiita.com/nuko_yokohama/items/0ae59f5d797bc79dcc06
152
153
onoke@onoke-OptiPlex-990:~$ su - postgres
154
パスワード:
155
postgres@onoke-OptiPlex-990:~$ whoami
156
postgres
157
postgres@onoke-OptiPlex-990:~$ which createdb
158
/usr/bin/createdb
159
postgres@onoke-OptiPlex-990:~$ createdb ivm
160
postgres@onoke-OptiPlex-990:~$ psql ivm -c "create extension pg_ivm"
161
CREATE EXTENSION
162
postgres@onoke-OptiPlex-990:~$ psql ivm -c "\dx pg_ivm"
163 4 keiji ono
<pre>
164 1 keiji ono
                          インストール済みの拡張一覧
165
  名前  | バージョン |  スキーマ  |                    説明                    
166
--------+------------+------------+--------------------------------------------
167
 pg_ivm | 1.7        | pg_catalog | incremental view maintenance on PostgreSQL
168 4 keiji ono
</pre>
169 1 keiji ono
mysql
170
171
    root pw: aterui0
172
    start/stop: sudo systemctl start(stop) mysql
173
    デフォルトではutf8mb4になっていて「補助文字」も扱える
174 4 keiji ono
<pre>
175 1 keiji ono
mysql> show variables like "chara%";
176
+--------------------------+----------------------------+
177
| Variable_name            | Value                      |
178
+--------------------------+----------------------------+
179
| character_set_client     | utf8mb4                    |
180
| character_set_connection | utf8mb4                    |
181
| character_set_database   | utf8mb4                    |
182
| character_set_filesystem | binary                     |
183
| character_set_results    | utf8mb4                    |
184
| character_set_server     | utf8mb4                    |
185
| character_set_system     | utf8mb3                    |
186
| character_sets_dir       | /usr/share/mysql/charsets/ |
187
+--------------------------+----------------------------+
188 4 keiji ono
</pre>
189 1 keiji ono
killはpid指定で
190 5 keiji ono
191 6 keiji ono
h3. on Mac
192 7 keiji ono
193 5 keiji ono
postgres/mysql/redisはbrewでstart/stopする。
194
<pre>
195
>brew services start/stop/restart <postgres/mysql/redis/mongodb>
196
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
197
                                  下記のリストから該当するものを入れる e.g. mysql@8.4
198
199
>brew services info --all
200
ono-macbook-pro:Jetelina onokeiji$ brew services info --all
201
mongodb-community (homebrew.mxcl.mongodb-community)
202
Running: ✘
203
Loaded: ✔
204
Schedulable: ✘
205
mysql@8.4 (homebrew.mxcl.mysql@8.4)
206
Running: ✔
207
Loaded: ✔
208
Schedulable: ✘
209
User: onokeiji
210
PID: 666
211
postgresql@14 (homebrew.mxcl.postgresql@14)
212
Running: ✔
213
Loaded: ✔
214
Schedulable: ✘
215
User: onokeiji
216
PID: 7285
217
redis (homebrew.mxcl.redis)
218
Running: ✘
219
Loaded: ✘
220
Schedulable: ✘
221
</pre>
222 8 keiji ono
223
h3. 各DB起動方法まとめ Ubuntu編
224 9 keiji ono
225 8 keiji ono
<pre>
226
sudo systemctl start/stop/status postgresql/mysql/redis/mongod
227
</pre>