あけましておめでとうございます!!

えーっとそのままです。

昼間から酒を飲むか夕方まで寝ているかで連休前半終わりました。

12/31のバタバタを終えて一気に年越しました。

01/05から仕事始めとか嘘だろ冗談だろ。止めてくれよマジで。

という事で私は沈んだ気持ちを酒で紛らわせています。

明日は末妹夫婦の自宅へ行って、姪っ子にお年玉をあげてきます。

何時に行けば良いのか聞いていないけど、17~18時くらいに行けば良いかな…(多分)

とうとう2025年も終わり

色々ありました。LPICレベル1の取得から職業訓練校の修了、新しい会社への入社、初の客先常駐。

あっという間に1年終わった。

年末年始休暇に入ってから毎日寝てばかりだったので、今日は意を決してAWS Lightsailで動かしているWebサーバーのOSアップグレードとnextCloudのバージョンアップを行った。

結局エラーメッセージがXX件あります系の警告だけは解決出来なかったけれど、実害が無いからそれでヨシ!

ubuntu24.04LTSへアップグレード

古いリポジトリ設定を削除する

ls /etc/apt/sources.list.d/の実行結果

certbot-ubuntu-certbot-bionic.list              ondrej-ubuntu-php-bionic.list

certbot-ubuntu-certbot-bionic.list.distUpgrade  ondrej-ubuntu-php-bionic.list.distUpgrade

certbot-ubuntu-certbot-bionic.list.save         ondrej-ubuntu-php-bionic.list.save

mariadb.list                                    ondrej-ubuntu-php-focal.list

mariadb.list.distUpgrade                        ondrej-ubuntu-php-focal.list.distUpgrade

mariadb.list.save                               ondrej-ubuntu-php-jammy.list

sudo rm /etc/apt/sources.list.d/*bionic*
sudo rm /etc/apt/sources.list.d/*focal*
sudo rm /etc/apt/sources.list.d/*.distUpgrade
sudo rm /etc/apt/sources.list.d/*.save

アップグレード開始

sudo do-release-upgrade

しかし下記のメッセージが表示されてうんともすんとも言わない。Geminiに聞いてみるとアップグレードプログラム自体が セグメンテーション違反(クラッシュ) を起こして異常終了したことを示しているとのこと。

Reading cache

=== Command terminated with signal 11 (core file generated) (Wed Dec 31 13:53:13 2025) ===

そこでパッケージの修復を行う。

sudo apt update
sudo apt install -f
sudo dpkg --configure -a

不要なパッケージの削除も実行。

sudo apt autoremove -y sudo apt clean

アップグレードマネージャーの再インストール

sudo apt install --reinstall ubuntu-release-upgrader-core

再度アップグレードを試みる

sudo do-release-upgrade

途中選択肢が複数出てくるが全てNを入力する。

以下のメッセージが表示されたらyを入力する。

Processing snap replacements

refreshing snap lxd
Searching for obsolete software
Reading state information... Done
Remove obsolete packages?
114 packages are going to be removed.
Removing the packages can take several hours.

Continue [yN]  Details [d]

System upgrade is complete. Restart required.と表示されたらyを押して再起動。

結果確認

cat /etc/os-releaseを実行する。

実行結果は以下

PRETTY_NAME="Ubuntu 24.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.3 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

無事成功。

nextCloud31.0.12へバージョンアップした際に現れたエラーの対処

AppAPIデプロイデーモン
AppAPIデフォルトのデプロイデーモンが設定されていません。外部アプリ(Ex-Apps)をインストールするための設定で、デフォルトのデプロイデーモンを登録してください。

以下を実行。

sudo -u www-data php /var/www/html/nextcloud/occ app:disable app_api

これはNextcloud 30/31から導入された「外部アプリ(Ex-Apps)」という新機能に関連するものです。多くの個人運用サーバーではこの機能(Dockerなどを使った外部連携)は使用しないため、アプリ自体を無効化するのが最も簡単で推奨される解決策。

Mimetypeの移行が可能
1つ以上のmimetypeマイグレーションが利用できます。時折、特定のファイルタイプをよりよく扱うために新しいmimetypesが追加されます。大規模なインスタンスではmimetypesの移行に時間がかかるため、アップグレード時には自動的には行われません。移行を行うには `occ maintenance:repair --include-expensive` コマンドを使用してください。

以下を実行。

sudo -u www-data php /var/www/html/nextcloud/occ maintenance:repair --include-expensive

PHP Imagickモジュール
このインスタンス内のPHPモジュール"imagick"はSVGをサポートしていません。互換性を高めるために、インストールすることをおすすめします。

以下を実行。

sudo vi /etc/ImageMagick-6/policy.xml

に以下を追記して保存・Apacheの再起動をする。

<policy domain="coder" rights="read|write" pattern="SVG" />

※上記で<>にしているのは、はてなブログのおせっかい機能で勝手にコード化されてしまうため。

以上

iPhone17のOSをアップデートした

iOSを26.0.1から26.1にアップデートしたのだが、1週間経ってもバッテリー持ちの悪さは変わらない…
もちろん、iPhone SE(第2世代)に比べれば1日は持つからそこまで文句はないけれど、Pixel8aとの差がどうしても気になる。

やはりインストールしているアプリケーションの数なのか?

これは夜勤でデータセンターに行く時などの長時間移動の際はモバイルバッテリーは欠かせないな。
データセンター内には持ち込めないけど、バッグに入れて入り口にあるロッカーに放り込んでおけば良い。
帰りの電車の中で充電は出来るし。

という事でモバイルバッテリーも新調した。今まで使っていたモバイルバッテリーだと古いiPhoneiPadの同時充電は可能だったが、今の端末には荷が重い。兎に角充電速度が遅いのだ。

せっかくなのでリチウムイオンではなく、リン酸鉄リチウムイオンの物にした。電気自動車などにも使われている電池で、従来品と比べて発火リスクが低いから長く安心して使える。

iPhone17を使って1ヶ月が過ぎた

購入から1ヶ月が過ぎたので書いてみる。

大きさ・重さ

正直最初は「6.3インチ?デカすぎじゃないか?」と思った。私は手が小さいので尚更だ。
iPhone5Sの頃からデカいと感じていたから、それはもう大変なものだ。

しかし実際に見てみると、6.1インチのPixel8aと変わらない。重さに関しては6.3インチのiPhone17の方が軽く感じる。(Pixel8aのケースが重いのかもしれないが)

今となってはこの大きさにも慣れたんじゃないかと思う。

操作感

非常にヌルサク。非常にヌルサクである。大事なことなので二度言った。
前機種のiPhone SE(第2世代)と比べると、SoCは6世代アップしたA19。メモリは3GBから8GBにアップ。

ゲームはFate Grand Orderしかやっていないが、アプリケーションがフリーズしたり、落ちる事なんてのはしょっちゅうだった。ORT戦のときなんて酷かった。
それに比べてiPhone17はロードも描写も軽快なもの。ゲームモードへの移行もアプリケーションを起動したら即ONになる。これでストレスは減った。あと120Hz凄い。

ストレージ

64GBから256GBへアップした事で、今まで入れられなかった漫画や音楽、動画を持ち歩ける様になった。これiPadの必要性はほぼない。ただし、昔はあったビデオアプリが今は無いので、代わりにドキュメント、音楽、動画に対応したnPlayerというアプリケーションを購入(800円)した。無料でも使えるが制限が気になったので課金することに。

気に入らないところ

バッテリーの持ちがPixel8aに比べると悪い。Pixel8aの方がバッテリー容量が1000ほど上だけど、それでも減りすぎではないかと思う。
買った当初は問題無かった。ところがiOSを26から26.0.1にバージョンアップしたら、明らかにバッテリー持ちが悪くなった。iOS26の時の方が問題無かったと思う。

あとはセキュリティが指紋認証から顔認証に変わった事で、ワンアクション面倒になった。
顔認証はPixel8aで導入しているから同じ物だと思っていたらとんでもない。

何故か、iPhoneの場合はロック画面を見つつ、画面下から上にスワイプしなければロック解除とならない。
これが非常に面倒くさい。あと、ベッドに寝っ転がってる時にロック解除しようとすると、枕で顔の側面が潰れて認識出来なくなるのか、ロック解除に失敗する。Pixel8aよりやりづらい。

都営住宅斡旋を辞退した

都営住宅を辞退した

まず内見に行く時間が無い

10月13日~10月17日のどこかで1回のみという条件。

仕事が立て込んでいるため無理。しかも1回で決めろと。

引っ越し可能期間が思い切り忙しい

「11月16日~11月30日の間に引っ越せ」と斡旋通知には記載されていたが、この期間に夜勤が2回ある。そんな状況で今の部屋をまとめて退去届けを出し、都営住宅へ引っ越して荷ほどきするのは物理的に無理。

内見に関しては母親から「一緒に行こうか?」と誘って貰ったが、やはりインターネット回線の件と和室2部屋という造りが納得出来なくて断った。

インターネット回線は最悪しばらくVDSLで使用し、仕事は出社するというスタイルも考えたが、和室2部屋というのはベッド+デスク+キャスター付きの椅子という私の生活に合わない。

畳を剥がしてフローリングにしても良いとJKK東京に言われたが、費用対効果が低い。

仮に退去する事になった場合、フローリングを剥がして畳に戻さなければならない。金と時間がかかるだけ。

覚悟を決めて、夕方、郵便局が開いている時間帯に仕事を抜け出して辞退届けを出してきた。

都営住宅の斡旋通知が届いた

10月01日、ついに届いてしまった。正直仕事が立て込んでいるから年度末辺りに来て欲しかった...

立地は申し分ない。というか、今の常駐先と駅の中間にある。近くにスーパーマーケットも2つあるので買い物にも困らないだろう。

そんな事を考えながら届いた書類を見てみたら、衝撃の文字が...

2K(和室2部屋)

おいおい、冗談だろ。スーパーリフォームしたんだろ?どうしてこの時代に和室なんて物を残す?
意味が分からない。

それと、JKK東京にインターネット回線について問い合わせたところ、VDSL方式だという。
光ファイバーを引き込めるパイプはあるので、今使っているプロバイダーを解約せずに済むのはありがたい。

しかし、JKK東京曰く「光ファイバーを敷設するのにどれだけ時間がかかるかは契約しているプロバイダー次第」と言われてしまった。

冗談じゃない。こっちは今リモートワーク中なんだぞ。直ぐにでも敷設してもらわないと困る。仕事にならない。

これは真面目に辞退かなあ...

iPad不要論

iPadを売った

2018年に買った第6世代iPadセルラー版 128GB)を売却した。

買取価格は6000円。

ここ何年もろくに使用していなかった。せいぜい就労移行支援所で数回使ったくらい。
それ以外は自宅でも使用する機会が殆ど無く、OSとアプリのアップデートをするくらいで念のために毎月バックアップを取っていた。

iPadって必需品?

答えはNoだ。

実際問題、iPadを持たないと生きていけない人なんて、ほとんどいない。
大多数の人にとってiPadは「便利なガジェット」どまりだし、その便利さも「中途半端」だったりする。

あれば便利だけど、なければ困らない。
何なら、持っていても「あれ、使う機会なくね?」ってこともあるくらいだ。

iPadで書類作成?キーボード無いとキツい。

動画編集?PCの方が便利。

メモ帳代わり?紙に書くか、PCでキーボードを使って入力した方が早い。

iPhoneは必需品

iPhoneは電話からSMS、インターネット、SNS、音楽再生、動画再生、ファイルサーバーとのやり取り、支払いetc...何でも出来る。それくらい生活に密着している。私もここ数年は外ではiPhoneを操作する事ばかりだった。

自宅はPC、外ではiPhone

ここ数年はこの体制で生活している。この時点でiPadを持ち出す理由がほぼ消えている。

iPadがあって良かった」と思ったのは、2016年にドイツへ行った時の機内だ。あの時スマートフォンは初代iPhone SEしか持っておらず、バッテリーもストレージ容量も少なかった。

故に当時は所持していたiPad Airが役に立った。機内で予め保存しておいた漫画や動画を見ながら10時間以上のフライトを退屈する事なく過ごせた。

ところが、無職になったのと新型コロナウィルスの影響で旅行に行く事は無くなった。
2023年に派遣社員として働き始めた時は「金に余裕が出来たら旅行しよう」と思っていたが、予想外に早い契約解除になってしまったため、旅行に行く余裕が無くなった。それに加えて物価高騰と円安。

こうなるとiPadは休みの日にベッドでごろ寝しながら、Youtubeやファイルサーバー内の動画を再生するくらいしか役目が無い。
今の仕事に就いた当初は買い換える予定だったが、ここ数年間の生活を顧みた結果、不要と判断した。

iPadの最大のライバルはiPhone

iPhoneが大型化・高解像度化してきたことで「iPadの画面の広さ」という優位性が薄れてきた。
さらに、PCとスマホ両方を持っている私にとって、iPadは「中途半端で使い所が少ない」という評価になる。

初めてiPadが出た当時のiPhoneは320×240ドットくらいの解像度しか無く、画面も今より小さかった。
だからiPadの優位性はあったと思う。初めて操作した時にノートPCを持ち歩くより手軽という印象を持った覚えがある。

今ではフライト中でもインターネットに繋げられる事もあるようだし、機内には充電コンセント用意されている航空会社もあるという。

そして、先にも書いた通りiPhoneの画面サイズとバッテリー容量も増えている。

ますますiPadを持つ必要性が薄れてくる。

nextCloud31.0.9にバージョンアップした時の記録

エラーが3項目あるが、最初に実行したのは一番最後のもの

1つ以上のmimetypeマイグレーションが利用できます。時折、特定のファイルタイプをよりよく扱うために新しいmimetypesが追加されます。大規模なインスタンスではmimetypesの移行に時間がかかるため、アップグレード時には自動的には行われません。移行を行うには `occ maintenance:repair --include-expensive` コマンドを使用してください。

以下を実行
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:repair --include-expensive

いくつかの欠落しているオプションのインデックスを検出しました。データベースのパフォーマンスを向上させるために、(Nextcloudまたはインストールされたアプリケーションによって)新しいインデックスが追加されることがあります。インデックスの追加には時間がかかり、一時的にパフォーマンスが低下することがあるため、アップグレード時には自動的には行われません。インデックスが追加されると、それらのテーブルへのクエリが速くなるはずです。インデックスを追加するには、`occ db:add-missing-indices` コマンドを使用してください。 インデックスが不足: "systag_objecttype" テーブル内の "systemtag_object_mapping", "unique_category_per_user" テーブル内の "vcategory", "cards_prop_abid_name_value" テーブル内の "cards_properties" 詳細については、ドキュメント↗を参照してください。

以下を実行
sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-indices

データベースに不正な行フォーマットが見つかりました。ROW_FORMAT=Dynamicは、Nextcloudで最高のデータベースパフォーマンスを提供します。以下のリストで行の形式を更新してください:

※最初に着手したのがこれだったのだが、一番面倒だった

oc_storages, oc_users, oc_notifications, oc_directlink, oc_accounts_data, oc_passwords_password_rv, oc_circles_mount, oc_systemtag_object_mapping, oc_passwords_entity_password, oc_filecache_extended, oc_passwords_share, oc_audioplayer_artists, oc_recent_contact, oc_user_transfer_owner, oc_dav_cal_proxy, oc_flow_checks, oc_authtoken, oc_authorized_groups, oc_vcategory_to_object, oc_mimetypes, oc_schedulingobjects, oc_collres_resources, oc_cards_properties, oc_activity, oc_collres_collections, oc_storages_credentials, oc_passwords_entity_session, oc_migrations, oc_webauthn, oc_passwords_entity_share, oc_calendar_resources_md, oc_groups, oc_twofactor_totp_secrets, oc_preferences, oc_appconfig, oc_filecache, oc_oauth2_access_tokens, oc_calendar_rooms_md, oc_calendarobjects_props, oc_flow_operations, oc_calendar_appt_configs, oc_calendarsubscriptions, oc_share_external, oc_share, oc_passwords_session, oc_calendar_resources, oc_audioplayer_albums, oc_passwords_challenge, oc_passwords_entity_registration, oc_dav_shares, oc_passwords_entity_challenge, oc_notifications_settings, oc_trusted_servers, oc_text_documents, oc_mounts, oc_login_flow_v2, oc_profile_config, oc_group_user, oc_comments_read_markers, oc_activity_mq, oc_audioplayer_genre, oc_passwords_entity_folder_revision, oc_files_trash, oc_passwords_password, oc_circles_remote, oc_group_admin, oc_passwords_entity_tag, oc_audioplayer_playlists, oc_notifications_pushhash, oc_text_sessions, oc_comments, oc_known_users, oc_passwords_tag, oc_passwords_entity_folder, oc_passwords_keychain, oc_audioplayer_stats, oc_audioplayer_whats_new, oc_calendar_rooms, oc_privacy_admins, oc_file_locks, oc_circles_circle, oc_user_status, oc_twofactor_providers, oc_circles_token, oc_passwords_registration, oc_systemtag_group, oc_passwords_tag_rv, oc_audioplayer_streams, oc_oauth2_clients, oc_passwords_pw_tag_rel, oc_audioplayer_playlist_tracks, oc_passwords_entity_password_revision, oc_calendarobjects, oc_circles_share_lock, oc_audioplayer_tracks, oc_bruteforce_attempts, oc_passwords_relation_password_tag, oc_addressbooks, oc_calendar_invitations, oc_federated_reshares, oc_cards, oc_passwords_folder, oc_text_steps, oc_vcategory, oc_circles_membership, oc_passwords_folder_rv, oc_flow_operations_scope, oc_circles_member, oc_calendars, oc_passwords_entity_keychain, oc_calendar_appt_bookings, oc_calendarchanges, oc_circles_mountpoint, oc_accounts, oc_properties, oc_systemtag, oc_direct_edit, oc_addressbookchanges, oc_twofactor_backupcodes, oc_ratelimit_entries, oc_circles_event, oc_collres_accesscache, oc_passwords_entity_tag_revision, oc_whats_new, oc_calendar_reminders, oc_jobs. 詳細については、ドキュメント↗を参照してください。

Step1 以下をサクラエディタに貼り付ける

oc_storages, oc_users, oc_notifications, oc_directlink, oc_accounts_data, oc_passwords_password_rv, oc_circles_mount, oc_systemtag_object_mapping, oc_passwords_entity_password, oc_filecache_extended, oc_passwords_share, oc_audioplayer_artists, oc_recent_contact, oc_user_transfer_owner, oc_dav_cal_proxy, oc_flow_checks, oc_authtoken, oc_authorized_groups, oc_vcategory_to_object, oc_mimetypes, oc_schedulingobjects, oc_collres_resources, oc_cards_properties, oc_activity, oc_collres_collections, oc_storages_credentials, oc_passwords_entity_session, oc_migrations, oc_webauthn, oc_passwords_entity_share, oc_calendar_resources_md, oc_groups, oc_twofactor_totp_secrets, oc_preferences, oc_appconfig, oc_filecache, oc_oauth2_access_tokens, oc_calendar_rooms_md, oc_calendarobjects_props, oc_flow_operations, oc_calendar_appt_configs, oc_calendarsubscriptions, oc_share_external, oc_share, oc_passwords_session, oc_calendar_resources, oc_audioplayer_albums, oc_passwords_challenge, oc_passwords_entity_registration, oc_dav_shares, oc_passwords_entity_challenge, oc_notifications_settings, oc_trusted_servers, oc_text_documents, oc_mounts, oc_login_flow_v2, oc_profile_config, oc_group_user, oc_comments_read_markers, oc_activity_mq, oc_audioplayer_genre, oc_passwords_entity_folder_revision, oc_files_trash, oc_passwords_password, oc_circles_remote, oc_group_admin, oc_passwords_entity_tag, oc_audioplayer_playlists, oc_notifications_pushhash, oc_text_sessions, oc_comments, oc_known_users, oc_passwords_tag, oc_passwords_entity_folder, oc_passwords_keychain, oc_audioplayer_stats, oc_audioplayer_whats_new, oc_calendar_rooms, oc_privacy_admins, oc_file_locks, oc_circles_circle, oc_user_status, oc_twofactor_providers, oc_circles_token, oc_passwords_registration, oc_systemtag_group, oc_passwords_tag_rv, oc_audioplayer_streams, oc_oauth2_clients, oc_passwords_pw_tag_rel, oc_audioplayer_playlist_tracks, oc_passwords_entity_password_revision, oc_calendarobjects, oc_circles_share_lock, oc_audioplayer_tracks, oc_bruteforce_attempts, oc_passwords_relation_password_tag, oc_addressbooks, oc_calendar_invitations, oc_federated_reshares, oc_cards, oc_passwords_folder, oc_text_steps, oc_vcategory, oc_circles_membership, oc_passwords_folder_rv, oc_flow_operations_scope, oc_circles_member, oc_calendars, oc_passwords_entity_keychain, oc_calendar_appt_bookings, oc_calendarchanges, oc_circles_mountpoint, oc_accounts, oc_properties, oc_systemtag, oc_direct_edit, oc_addressbookchanges, oc_twofactor_backupcodes, oc_ratelimit_entries, oc_circles_event, oc_collres_accesscache, oc_passwords_entity_tag_revision, oc_whats_new, oc_calendar_reminders, oc_jobs

Step2 ", "で改行(正規表現にチェックが付いている事を忘れずに。また最終行に改行を入れること)

置換前:, 
置換後:\r\n

結果


oc_storages
oc_users
oc_notifications
oc_directlink
oc_accounts_data
oc_passwords_password_rv
oc_circles_mount
oc_systemtag_object_mapping
oc_passwords_entity_password
oc_filecache_extended
oc_passwords_share
oc_audioplayer_artists
oc_recent_contact
oc_user_transfer_owner
oc_dav_cal_proxy
oc_flow_checks
oc_authtoken
oc_authorized_groups
oc_vcategory_to_object
oc_mimetypes
oc_schedulingobjects
oc_collres_resources
oc_cards_properties
oc_activity
oc_collres_collections
oc_storages_credentials
oc_passwords_entity_session
oc_migrations
oc_webauthn
oc_passwords_entity_share
oc_calendar_resources_md
oc_groups
oc_twofactor_totp_secrets
oc_preferences
oc_appconfig
oc_filecache
oc_oauth2_access_tokens
oc_calendar_rooms_md
oc_calendarobjects_props
oc_flow_operations
oc_calendar_appt_configs
oc_calendarsubscriptions
oc_share_external
oc_share
oc_passwords_session
oc_calendar_resources
oc_audioplayer_albums
oc_passwords_challenge
oc_passwords_entity_registration
oc_dav_shares
oc_passwords_entity_challenge
oc_notifications_settings
oc_trusted_servers
oc_text_documents
oc_mounts
oc_login_flow_v2
oc_profile_config
oc_group_user
oc_comments_read_markers
oc_activity_mq
oc_audioplayer_genre
oc_passwords_entity_folder_revision
oc_files_trash
oc_passwords_password
oc_circles_remote
oc_group_admin
oc_passwords_entity_tag
oc_audioplayer_playlists
oc_notifications_pushhash
oc_text_sessions
oc_comments
oc_known_users
oc_passwords_tag
oc_passwords_entity_folder
oc_passwords_keychain
oc_audioplayer_stats
oc_audioplayer_whats_new
oc_calendar_rooms
oc_privacy_admins
oc_file_locks
oc_circles_circle
oc_user_status
oc_twofactor_providers
oc_circles_token
oc_passwords_registration
oc_systemtag_group
oc_passwords_tag_rv
oc_audioplayer_streams
oc_oauth2_clients
oc_passwords_pw_tag_rel
oc_audioplayer_playlist_tracks
oc_passwords_entity_password_revision
oc_calendarobjects
oc_circles_share_lock
oc_audioplayer_tracks
oc_bruteforce_attempts
oc_passwords_relation_password_tag
oc_addressbooks
oc_calendar_invitations
oc_federated_reshares
oc_cards
oc_passwords_folder
oc_text_steps
oc_vcategory
oc_circles_membership
oc_passwords_folder_rv
oc_flow_operations_scope
oc_circles_member
oc_calendars
oc_passwords_entity_keychain
oc_calendar_appt_bookings
oc_calendarchanges
oc_circles_mountpoint
oc_accounts
oc_properties
oc_systemtag
oc_direct_edit
oc_addressbookchanges
oc_twofactor_backupcodes
oc_ratelimit_entries
oc_circles_event
oc_collres_accesscache
oc_passwords_entity_tag_revision
oc_whats_new
oc_calendar_reminders
oc_jobs


Step3 "ALTER TABLE "を各行の先頭に付ける(正規表現にチェックが付いている事を忘れずに)

置換前:^
置換後:ALTER TABLE 

結果


ALTER TABLE oc_storages
ALTER TABLE oc_users
ALTER TABLE oc_notifications
ALTER TABLE oc_directlink
ALTER TABLE oc_accounts_data
ALTER TABLE oc_passwords_password_rv
ALTER TABLE oc_circles_mount
ALTER TABLE oc_systemtag_object_mapping
ALTER TABLE oc_passwords_entity_password
ALTER TABLE oc_filecache_extended
ALTER TABLE oc_passwords_share
ALTER TABLE oc_audioplayer_artists
ALTER TABLE oc_recent_contact
ALTER TABLE oc_user_transfer_owner
ALTER TABLE oc_dav_cal_proxy
ALTER TABLE oc_flow_checks
ALTER TABLE oc_authtoken
ALTER TABLE oc_authorized_groups
ALTER TABLE oc_vcategory_to_object
ALTER TABLE oc_mimetypes
ALTER TABLE oc_schedulingobjects
ALTER TABLE oc_collres_resources
ALTER TABLE oc_cards_properties
ALTER TABLE oc_activity
ALTER TABLE oc_collres_collections
ALTER TABLE oc_storages_credentials
ALTER TABLE oc_passwords_entity_session
ALTER TABLE oc_migrations
ALTER TABLE oc_webauthn
ALTER TABLE oc_passwords_entity_share
ALTER TABLE oc_calendar_resources_md
ALTER TABLE oc_groups
ALTER TABLE oc_twofactor_totp_secrets
ALTER TABLE oc_preferences
ALTER TABLE oc_appconfig
ALTER TABLE oc_filecache
ALTER TABLE oc_oauth2_access_tokens
ALTER TABLE oc_calendar_rooms_md
ALTER TABLE oc_calendarobjects_props
ALTER TABLE oc_flow_operations
ALTER TABLE oc_calendar_appt_configs
ALTER TABLE oc_calendarsubscriptions
ALTER TABLE oc_share_external
ALTER TABLE oc_share
ALTER TABLE oc_passwords_session
ALTER TABLE oc_calendar_resources
ALTER TABLE oc_audioplayer_albums
ALTER TABLE oc_passwords_challenge
ALTER TABLE oc_passwords_entity_registration
ALTER TABLE oc_dav_shares
ALTER TABLE oc_passwords_entity_challenge
ALTER TABLE oc_notifications_settings
ALTER TABLE oc_trusted_servers
ALTER TABLE oc_text_documents
ALTER TABLE oc_mounts
ALTER TABLE oc_login_flow_v2
ALTER TABLE oc_profile_config
ALTER TABLE oc_group_user
ALTER TABLE oc_comments_read_markers
ALTER TABLE oc_activity_mq
ALTER TABLE oc_audioplayer_genre
ALTER TABLE oc_passwords_entity_folder_revision
ALTER TABLE oc_files_trash
ALTER TABLE oc_passwords_password
ALTER TABLE oc_circles_remote
ALTER TABLE oc_group_admin
ALTER TABLE oc_passwords_entity_tag
ALTER TABLE oc_audioplayer_playlists
ALTER TABLE oc_notifications_pushhash
ALTER TABLE oc_text_sessions
ALTER TABLE oc_comments
ALTER TABLE oc_known_users
ALTER TABLE oc_passwords_tag
ALTER TABLE oc_passwords_entity_folder
ALTER TABLE oc_passwords_keychain
ALTER TABLE oc_audioplayer_stats
ALTER TABLE oc_audioplayer_whats_new
ALTER TABLE oc_calendar_rooms
ALTER TABLE oc_privacy_admins
ALTER TABLE oc_file_locks
ALTER TABLE oc_circles_circle
ALTER TABLE oc_user_status
ALTER TABLE oc_twofactor_providers
ALTER TABLE oc_circles_token
ALTER TABLE oc_passwords_registration
ALTER TABLE oc_systemtag_group
ALTER TABLE oc_passwords_tag_rv
ALTER TABLE oc_audioplayer_streams
ALTER TABLE oc_oauth2_clients
ALTER TABLE oc_passwords_pw_tag_rel
ALTER TABLE oc_audioplayer_playlist_tracks
ALTER TABLE oc_passwords_entity_password_revision
ALTER TABLE oc_calendarobjects
ALTER TABLE oc_circles_share_lock
ALTER TABLE oc_audioplayer_tracks
ALTER TABLE oc_bruteforce_attempts
ALTER TABLE oc_passwords_relation_password_tag
ALTER TABLE oc_addressbooks
ALTER TABLE oc_calendar_invitations
ALTER TABLE oc_federated_reshares
ALTER TABLE oc_cards
ALTER TABLE oc_passwords_folder
ALTER TABLE oc_text_steps
ALTER TABLE oc_vcategory
ALTER TABLE oc_circles_membership
ALTER TABLE oc_passwords_folder_rv
ALTER TABLE oc_flow_operations_scope
ALTER TABLE oc_circles_member
ALTER TABLE oc_calendars
ALTER TABLE oc_passwords_entity_keychain
ALTER TABLE oc_calendar_appt_bookings
ALTER TABLE oc_calendarchanges
ALTER TABLE oc_circles_mountpoint
ALTER TABLE oc_accounts
ALTER TABLE oc_properties
ALTER TABLE oc_systemtag
ALTER TABLE oc_direct_edit
ALTER TABLE oc_addressbookchanges
ALTER TABLE oc_twofactor_backupcodes
ALTER TABLE oc_ratelimit_entries
ALTER TABLE oc_circles_event
ALTER TABLE oc_collres_accesscache
ALTER TABLE oc_passwords_entity_tag_revision
ALTER TABLE oc_whats_new
ALTER TABLE oc_calendar_reminders
ALTER TABLE oc_jobs


Step4 " ROW_FORMAT=DYNAMIC;"を各行の末尾に付ける(正規表現にチェックが付いている事を忘れずに)

置換前:\r\n
置換後: ROW_FORMAT=DYNAMIC;\r\n

結果


ALTER TABLE oc_storages ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_users ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_notifications ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_directlink ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_accounts_data ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_password_rv ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_mount ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_systemtag_object_mapping ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_password ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_filecache_extended ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_share ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_artists ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_recent_contact ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_user_transfer_owner ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_dav_cal_proxy ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_flow_checks ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_authtoken ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_authorized_groups ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_vcategory_to_object ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_mimetypes ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_schedulingobjects ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_collres_resources ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_cards_properties ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_activity ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_collres_collections ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_storages_credentials ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_session ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_migrations ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_webauthn ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_share ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_resources_md ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_groups ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_twofactor_totp_secrets ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_preferences ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_appconfig ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_filecache ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_oauth2_access_tokens ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_rooms_md ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendarobjects_props ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_flow_operations ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_appt_configs ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendarsubscriptions ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_share_external ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_share ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_session ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_resources ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_albums ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_challenge ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_registration ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_dav_shares ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_challenge ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_notifications_settings ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_trusted_servers ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_text_documents ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_mounts ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_login_flow_v2 ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_profile_config ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_group_user ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_comments_read_markers ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_activity_mq ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_genre ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_folder_revision ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_files_trash ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_password ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_remote ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_group_admin ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_tag ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_playlists ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_notifications_pushhash ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_text_sessions ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_comments ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_known_users ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_tag ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_folder ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_keychain ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_stats ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_whats_new ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_rooms ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_privacy_admins ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_file_locks ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_circle ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_user_status ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_twofactor_providers ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_token ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_registration ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_systemtag_group ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_tag_rv ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_streams ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_oauth2_clients ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_pw_tag_rel ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_playlist_tracks ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_password_revision ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendarobjects ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_share_lock ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_audioplayer_tracks ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_bruteforce_attempts ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_relation_password_tag ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_addressbooks ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_invitations ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_federated_reshares ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_cards ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_folder ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_text_steps ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_vcategory ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_membership ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_folder_rv ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_flow_operations_scope ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_member ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendars ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_keychain ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_appt_bookings ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendarchanges ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_mountpoint ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_accounts ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_properties ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_systemtag ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_direct_edit ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_addressbookchanges ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_twofactor_backupcodes ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_ratelimit_entries ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_circles_event ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_collres_accesscache ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_passwords_entity_tag_revision ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_whats_new ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_calendar_reminders ROW_FORMAT=DYNAMIC;
ALTER TABLE oc_jobs ROW_FORMAT=DYNAMIC;


上記のSQLをコピペしてalter_tables_dynamic.sqlとして保存
vi /tmp/alter_tables_dynamic.sql

nextCloudのメンテナンスモードを有効にする

sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --on

MariaDBにログイン(パスワードはデータベースのrootパスワード)

mysql -u root -p

nextCloudのデータベースへ移動
USE nextcloud;

SQL実行

SOURCE /tmp/alter_tables_dynamic.sql;

Query OK, 0 rows affected (0.023 sec)
Records: 0  Duplicates: 0  Warnings: 0

上記の様な文章がずらっと出てきて、最後にMariaDB [nextcloud]>
に戻った。

取りこぼしなくDYNAMICに変換されているか、念のため確認

MariaDB [nextcloud]> SELECT TABLE_NAME, ROW_FORMAT
    -> FROM INFORMATION_SCHEMA.TABLES
    -> WHERE TABLE_SCHEMA = 'nextcloud'
    -> AND ROW_FORMAT != 'Dynamic';

Empty set (0.006 sec)

↑取りこぼしなくDynamicに変換された。

nextCloudのメンテナンスモードを無効にする

sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off

Nextcloudの管理画面で確認

「データベースに不正な行フォーマットが見つかりました~」のエラーメッセージが消えている事を確認

以上

iPhone17を注文した

iPhone17無印 256GBを注文した。
しかし、到着は10/01-10/08...

9月中にはゲットしたかったなあ。

というか、今使っているOCNモバイルONEはeSIMに対応しておらず(対応予定も無いとのこと)、物理SIMしか対応していないので、別キャリアにMNPしなければならない。

発送の連絡が来たらで良いかこれは。

新Webカメラ到着

Windows Helloに対応したWebカメラ「NEXIGO HelloCam」がようやく到着した。

早速Windows 11の設定から情報を顔情報とPINを登録する。
このWebカメラはレンズカバーがついており、普段は閉まっているが、ログイン画面になると「チャッ」と音がなり開く仕掛けになっている。

万が一PCがクラッキングされてWebカメラが乗っ取られた場合、レンズカバーが無いと、部屋や自分の姿が丸見えになる。これが嫌なので、スライド式のカメラカバーの付いたものを探していたのだが、なかなか見つからなかった。

そうしてやっとこの製品と出会った。
値段は17083円と高いが、Dellの3万円近くする物に比べれば安いものだ。

また、この製品は私が使用しているパスワード管理ソフト「Bitwarden」の生体認証ロック解除にも対応している。当然これも導入した。これでマスターパスワードを入力せずともロック解除が可能になる。
良い買い物をしたなあ。