deezus blog

.Net Core、Typescriptを中心に技術的ノウハウを公開しています

EntityFrameworkCoreで接続文字列を動的に変更する方法

はじめに ASP.NET Core + EntityFrameworkCore製マルチテナントのシステムで顧客ごとにデータベースが分かれており、動的に接続文字列を切り替える必要がある場合の対処法 構成 下記のようなデータベース構造を想定します 共通データベース 顧客一覧テーブル…

leafletの基本的な使い方

はじめに Google マップのような地図を独自に構築できるleafletの基本的な使い方をご紹介します とりあえず地図を表示する 下記の例ではOpenStreetMapを使用し、東京駅周辺を表示するサンプルです <html lang="jp"> <head> <meta charset="UTF-8"> <title>leaflet</title> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" /> </link></meta></head></html>

EntityFrameworkCoreでSQLServerの空間情報を扱う方法

はじめに SQLServerでGeography型のカラムを扱う方法です 必要なパッケージ Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite テーブル構造 例として店舗の座標を保存するだけのテーブルとします create table stores ( id int identity constrain…

PostgreSQLでテーブル一覧を取得する方法

PostgreSQLでテーブル一覧を取得する場合は下記のクエリを実行すれば取得できます SELECT relname FROM "pg_stat_user_tables" WHERE schemaname='public' なお、PostGISを使用する場合はWHERE schemaname='public'を付けないとPostGIS関連ものが含まれてし…

DockerでMySQL8を使う場合、パスワード認証をmysql_native_passwordにする方法

Node.jsでMySQLに接続できない MySQL8はパスワードでの認証方法(caching_sha2_password)が5.7以前(mysql_native_password)と変わりました そのため対応するドライバでない場合、うまく認証ができずMySQLに接続できません 例えばNode.jsでmysqlを使用して接続…

dacでWordPressのDBをextractしてみる

dacを使えばデータベース構造をyamlにすることができます インストール直後の状態でextractすると以下のようになりました tables: wp_commentmeta: columns: meta_id: id: true comment_id: type: bigint unsigned length: 20 notNull: true default: '0' me…

C#でWebAssemblyが開発できるBlazorを試してみる

はじめに 現時点(2018/10/21)ではプレビュー段階ですがC#でWebAssemblyを開発することができるBlazorというものがあります https://blazor.net/ これを使うことでWebシステムにおいてサーバサイドとクライアントサイドの両方をC#で開発することができます 現…

yamlでデータベースを管理するツールを作りました

はじめに 開発中のデータベースのテーブル構造変更が簡単にできるようなツールを作成しています npmで公開しました @deezus/dac データベースに特化したAnsibleのようなものを目指しています インストール方法 npmでインストールします npm install @deezus/…

テーブルのカラムにチェック制約を追加する方法

はじめに 例えば年齢制限のあるシステムなどデータベースに登録できる値に制限をかけたい場合があります そのようなカラムにチェック制約を追加すれば、条件に合わない値を登録しようとした場合エラーにすることができます クエリ例 以下の例ではusers.ageに…

郵便番号を取得する方法

はじめに 郵便番号検索を作りたい場合、zipcloudなど既存のAPIを使えば簡単にできます ただ状況によっては完全に自前で実装したい場合もあると思います そういう場合は郵便番号の一覧は郵便局のサイトで公開されているcsvを使用します csvの入手 全国の郵便…