見出し画像

【ミーア】眠りモードに至るまでの時間をアプリ側で設定して反映させる。

はじめに

以前、ESP32のlight sleep mode機能を使って、ミーアをおやすみモードに移行する部分のコードを作成した。この時は、PlatformIOに直接スリープモードへの移行時間を設定していたが、ユーザーのアプリで移行時間を設定できるように変更する。

こちらの、おしゃべり設定画面に「おやすみモードへの時間(オーナーからの操作が一定時間なかった時におやすみモードに移行する時間)」という設定を追加する。

データベースにカラム追加→サーバー側実装→アプリ実装→ESP32実装の順に進める



Userテーブルにスリープモードへの移行時間カラムを追加

マイグレーションファイルを作成

現在のUser構造体は下記。こちらに新しくスリープモードへの移行時間カラム(sleep_transition_time)を追加する。


データベースには PlanetScale (MySQL) を利用している。

下記コマンドをターミナルで実行して、マイグレーションファイルを作成。

-ext sql: ファイルの拡張子として .sql を指定
-format 2006010215 : マイグレーションファイルの接頭辞として YYYYMMDDHH(年月日時)の形式のタイムスタンプがつく。

$ cd scripts/migrations

# migrate create -ext sql -format 2006010215 <filename> 
$ migrate create -ext sql -format 2006010215 add_sleep_transition_time_to_users

/Users/ky/dev/clocky/clocky_be/scripts/migration/2024012522_add_sleep_transition_time_to_users.up.sql
/Users/ky/dev/clocky/clocky_be/scripts/migration/2024012522_add_sleep_transition_time_to_users.down.sql

コマンドを実行すると、upファイルとdownファイルの両方が作成される。

.up.sql はマイグレーションを適用する際のSQLを含み、.down.sql はマイグレーションをロールバックする際のSQLを含む。

続きはこちらで記載しています。


この記事が参加している募集

#仕事について話そう

109,984件

よろしければサポートお願いします!いただいたサポートはクリエイターとしての活動費に使わせていただきます!