Upgrade Serverpod — minor/patch updates, major upgrade to v3, pubspec updates across all packages. Use when upgrading Serverpod versions or updating dependencies.
Use the same pinned Serverpod version across all packages.
dart pub global activate serverpod_cliserverpod, serverpod_test (dev), module server packagesserverpod_client, module client packagesserverpod_flutter, module Flutter packagesdart pub upgrade + serverpod generate from server directoryserverpod create-migration + dart run bin/main.dart --apply-migrationsRequirements: Dart 3.8.0+, Flutter 3.32.0+.
dart pub global activate serverpod_cli3.0.0+ and SDK constraint: sdk: '>=3.8.0 <4.0.0'FROM dart:3.8 AS builddart pub upgrade + serverpod generateWeb server (Relic):
handleCall: HttpRequest → Request, Future<bool> → FutureOr<Result>, return Response.ok(...) instead of writing to responserequest.remoteIpAddress → request.remoteInfo; request.headers.value('name') → request.headers['name']AbstractWidget→WebWidget, Widget→TemplateWidget, WidgetList→ListWidget, WidgetJson→JsonWidget, WidgetRedirect→RedirectWidgetRouteStaticDirectory(...) → StaticRoute.directory(Directory(...)) with cacheControlFactorySession.request: Optional request property on Session (null for non-HTTP sessions).
Enum serialization: Default now byName. Add serialized: byIndex in YAML to keep old behavior.
Models: SerializableEntity → SerializableModel. YAML: parent=table → relation(parent=table); database → scope=serverOnly; api → !persist.
Auth: session.authenticated is now synchronous. AuthenticationInfo.authId non-nullable, userIdentifier is String. Client: authenticationKeyManager → authKeyProvider. Custom handlers receive unwrapped Bearer token.
Deprecated: Legacy streaming endpoints; use streaming methods.
SerializableEntity → SerializableModel, YAML keywordsFrom server directory: serverpod create . — adds full config and structure. Back up first. Then add DB, create-migration, apply.