【ミーア】眠りモードに至るまでの時間をアプリ側で設定して反映させる。
はじめに
以前、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を含む。
続きはこちらで記載しています。
この記事が参加している募集
よろしければサポートお願いします!いただいたサポートはクリエイターとしての活動費に使わせていただきます!