😎

Rustの環境構築とMysql接続

2021/05/21に公開

こんにちは、フロントエンドエンジニアのてりーです。
僕の詳しいプロフィールはこちら

目標

Rust環境をローカルに作り、Mysqlと接続して、DUMPしてあったデータを取り込む

この記事を参考に進めていく。

https://ozway.jp/2020/10/rust-mysql-diesel(1)/

準備

参考記事の動作環境が以下だった。
Macが修理から帰ってきたばっかで、Mysqlが入っていなかったので準備として入れていく。

Ubuntu 18.04
Rust 1.46.0
MySQL 8.0.21

この記事を参考に実行。
https://prog-8.com/docs/mysql-env

ローカルマシンにMysqlが入る。

Mysqlから今回扱うDBを作る。
create database discord_clone;

Rust環境を作る

Diesel CLIのインストール

記事通りコマンド実行

cagroが入っていない
ってことは多分、Rust環境がローカルにない

Rustの公式ページ行く
https://www.rust-lang.org/ja/tools/install
以下のコマンドでインストール
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