feat: 更新数据表气象数据存储类型
This commit is contained in:
parent
1c88bde080
commit
ecf3a153f0
38
model/db.go
38
model/db.go
@ -42,21 +42,33 @@ func InitDB() error {
|
|||||||
func createRS485Table() error {
|
func createRS485Table() error {
|
||||||
_, err := db.Exec(`
|
_, err := db.Exec(`
|
||||||
CREATE TABLE IF NOT EXISTS rs485_weather_data (
|
CREATE TABLE IF NOT EXISTS rs485_weather_data (
|
||||||
id SERIAL PRIMARY KEY,
|
id BIGSERIAL PRIMARY KEY,
|
||||||
station_id VARCHAR(50) NOT NULL,
|
station_id VARCHAR(50) NOT NULL,
|
||||||
timestamp TIMESTAMP NOT NULL,
|
timestamp TIMESTAMPTZ NOT NULL,
|
||||||
temperature DECIMAL(5,2), -- 温度(摄氏度)
|
temperature DOUBLE PRECISION,
|
||||||
humidity DECIMAL(5,2), -- 湿度(%)
|
humidity DOUBLE PRECISION,
|
||||||
wind_speed DECIMAL(5,2), -- 风速(m/s)
|
wind_speed DOUBLE PRECISION,
|
||||||
wind_direction DECIMAL(5,2), -- 风向(度)
|
wind_direction DOUBLE PRECISION,
|
||||||
rainfall DECIMAL(5,2), -- 降雨量(mm)
|
rainfall DOUBLE PRECISION,
|
||||||
light DECIMAL(10,2), -- 光照(lux)
|
light DOUBLE PRECISION,
|
||||||
uv DECIMAL(5,2), -- 紫外线
|
uv DOUBLE PRECISION,
|
||||||
pressure DECIMAL(7,2), -- 气压(hPa)
|
pressure DOUBLE PRECISION,
|
||||||
raw_data TEXT, -- 原始数据
|
raw_data TEXT,
|
||||||
FOREIGN KEY (station_id) REFERENCES stations(station_id)
|
FOREIGN KEY (station_id) REFERENCES stations(station_id),
|
||||||
|
UNIQUE (station_id, timestamp)
|
||||||
)`)
|
)`)
|
||||||
return err
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支持性索引(若已存在则不重复创建)
|
||||||
|
if _, err = db.Exec(`CREATE INDEX IF NOT EXISTS idx_rwd_time ON rs485_weather_data (timestamp)`); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err = db.Exec(`CREATE INDEX IF NOT EXISTS idx_rwd_station_time ON rs485_weather_data (station_id, timestamp)`); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func CloseDB() {
|
func CloseDB() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user