Rustの環境構築とMysql接続
こんにちは、フロントエンドエンジニアのてりーです。
僕の詳しいプロフィールはこちら
目標
Rust環境をローカルに作り、Mysqlと接続して、DUMPしてあったデータを取り込む
この記事を参考に進めていく。
準備
参考記事の動作環境が以下だった。
Macが修理から帰ってきたばっかで、Mysqlが入っていなかったので準備として入れていく。
Ubuntu 18.04
Rust 1.46.0
MySQL 8.0.21
この記事を参考に実行。
ローカルマシンにMysqlが入る。
Mysqlから今回扱うDBを作る。
create database discord_clone;
Rust環境を作る
Diesel CLIのインストール
記事通りコマンド実行
cagroが入っていない
ってことは多分、Rust環境がローカルにない
Rustの公式ページ行く
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
ターミナルは一旦、再起動。
帰ってきたら再度、試す。
cargo install diesel_cli --no-default-features --features mysql
記事通りのエラーが出て失敗。
エラー内容的にJava環境がない事を言っているらしい
この記事に沿って対策。https://ozway.jp/2020/10/rust-mysql-diesel(1)/
無事、Diesel CLIがインストールできた
プロジェクトの作成
cargo new プロジェクト名
コマンドで新しいプロジェクトを作成
これでRust環境は完成
Mysqlとの接続
.envで環境変数いれる
プロジェクト名配下に.envファイルを作る
DATABASE_URLにMysqlの情報をいれる
DATABASE_URL=mysql://[ユーザー名]:[パスワード]@[IPアドレス]/[データベース名]
僕の場合は
mysql://rootパスワード@127.0.0.1/データベース名
だった
マイグレーションの実行
Diesel CLIでセットアップ
diesel setup
これでmigrationsディレクトリができる
diesel migration generate rust_mysql_init
migration実行
migrationsフォルダ配下にup.sql、down.sqlが出来ていればセットアップは成功
sql文を書く
参考記事のままup.sql、down.sqlにそれぞれsql文を記述
up.sqlはマイグレーションを適応した際に行う処理を書く
今回はユーザーテーブル作成している
CREATE TABLE users
(
id SERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL
);```
down.sqlではマイグレーションの適用前に戻すためのSQL文を書く
```down.sql
DROP TABLE users;
diesel migration run
でup.sqlのsql文を実行
ずらーーーーっとデータが作成されていく
mysqlで確認
GUIでもCUIでもOK
ちゃんとDB内にデータがあるか確認
入っていれば、Rustの環境構築及び、Mysqlとの接続完了
お疲れさまでした。
Discussion