feat(db): add SQLx migrations and AppState with connection pool
- Add sqlx 0.8 (AnyPool, runtime-tokio, sqlite, postgres, migrate) - Create 6 migration files for both SQLite and PostgreSQL backends - Add server/db.rs: create_pool and run_migrations helpers - Add server/state.rs: AppState with LeptosOptions + AnyPool - Run migrations at server startup before accepting requests - Fix Port model: remove host_id (ports are now a global catalog) - Add HostPort join struct for the host_ports many-to-many table Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -57,24 +57,32 @@ pub struct Host {
|
||||
|
||||
// ─── Port ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
/// A network port open on a host, with its likely protocol description.
|
||||
/// A network port entry in the global port catalog.
|
||||
///
|
||||
/// Ports are defined once here; host_ports and application_ports link them
|
||||
/// to hosts and applications through separate join tables.
|
||||
/// Well-known ports (0–1023) have standardized protocol assignments.
|
||||
/// A port can be associated with multiple applications (non-strict relation).
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Port {
|
||||
/// TCP/UDP port number.
|
||||
/// `u16` is an unsigned 16-bit integer → range 0 to 65535,
|
||||
/// which exactly matches the valid range for network ports.
|
||||
/// TCP/UDP port number (0–65535).
|
||||
/// `u16` is an unsigned 16-bit integer — the exact range for port numbers.
|
||||
pub number: u16,
|
||||
|
||||
/// Description of the likely protocol on this port.
|
||||
/// `Option<String>`: may be absent (None) when the protocol is unknown.
|
||||
/// Description of the protocol typically running on this port.
|
||||
/// `Option<String>`: absent (None) when the protocol is unknown.
|
||||
/// Examples: Some("SSH"), Some("HTTPS"), None
|
||||
pub description: Option<String>,
|
||||
}
|
||||
|
||||
/// The host on which this port is open.
|
||||
// ─── HostPort ─────────────────────────────────────────────────────────────────
|
||||
|
||||
/// Join record representing a port open on a specific host.
|
||||
///
|
||||
/// Maps to the `host_ports` table (many-to-many between hosts and ports).
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct HostPort {
|
||||
pub host_id: i64,
|
||||
pub port_number: u16,
|
||||
}
|
||||
|
||||
impl Port {
|
||||
|
||||
Reference in New Issue
Block a user