Skip to content

Commit c056017

Browse files
committed
add tim
1 parent 5900c3a commit c056017

5 files changed

Lines changed: 40 additions & 28 deletions

File tree

apps/cli/src/cloud.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1167,7 +1167,7 @@ fn deploy() -> Result<()> {
11671167
if migrations_dir.exists() {
11681168
match crate::migrate::apply(&surreal_client, &migrations_dir) {
11691169
Ok(()) => println!(" ▸ Migrations complete."),
1170-
Err(e) => println!(" ▸ Migration warning: {}", e),
1170+
Err(e) => println!(" ▸ Migration warning: {:?}", e),
11711171
}
11721172
} else {
11731173
println!(" ▸ No migrations directory found, skipping.");

apps/cli/src/migrate.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -308,14 +308,9 @@ pub fn apply(client: &dyn MigrationDB, migrations_dir: &Path) -> Result<()> {
308308
migration.version, migration.name
309309
);
310310

311-
// Wrap in a transaction so partial failures roll back cleanly
312-
let transactional_sql = format!(
313-
"BEGIN TRANSACTION;\n{}\nCOMMIT TRANSACTION;",
314-
sql
315-
);
316-
311+
// Apply migration statements directly (SurrealDB DDL doesn't support transactions)
317312
client
318-
.execute(&transactional_sql)
313+
.execute(&sql)
319314
.context(format!(
320315
"Failed to apply migration {}_{}",
321316
migration.version, migration.name
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
DEFINE TABLE IF NOT EXISTS _spooky_migrations SCHEMAFULL PERMISSIONS NONE;
2-
DEFINE FIELD IF NOT EXISTS version ON _spooky_migrations TYPE string;
3-
DEFINE FIELD IF NOT EXISTS name ON _spooky_migrations TYPE string;
4-
DEFINE FIELD IF NOT EXISTS applied_at ON _spooky_migrations TYPE datetime VALUE time::now();
5-
DEFINE FIELD IF NOT EXISTS checksum ON _spooky_migrations TYPE string;
6-
DEFINE INDEX IF NOT EXISTS idx_version ON _spooky_migrations FIELDS version UNIQUE;
1+
DEFINE TABLE IF NOT EXISTS _00_migrations SCHEMAFULL PERMISSIONS NONE;
2+
DEFINE FIELD IF NOT EXISTS version ON _00_migrations TYPE string;
3+
DEFINE FIELD IF NOT EXISTS name ON _00_migrations TYPE string;
4+
DEFINE FIELD IF NOT EXISTS applied_at ON _00_migrations TYPE datetime VALUE time::now();
5+
DEFINE FIELD IF NOT EXISTS checksum ON _00_migrations TYPE string;
6+
DEFINE INDEX IF NOT EXISTS idx_version ON _00_migrations FIELDS version UNIQUE;

apps/cli/src/surreal_client.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,9 +222,19 @@ impl MigrationDB for SurrealClient {
222222
}
223223

224224
fn get_applied_migrations(&self) -> Result<Vec<AppliedMigration>> {
225-
let responses = self
225+
let responses = match self
226226
.execute("SELECT version, name, applied_at, checksum FROM _00_migrations ORDER BY version ASC;")
227-
.context("Failed to query applied migrations")?;
227+
{
228+
Ok(r) => r,
229+
Err(e) => {
230+
// SurrealDB 3.x returns error for non-existent tables — treat as empty
231+
let msg = e.to_string();
232+
if msg.contains("does not exist") || msg.contains("NotFound") {
233+
return Ok(vec![]);
234+
}
235+
return Err(e).context("Failed to query applied migrations");
236+
}
237+
};
228238

229239
let result = responses
230240
.into_iter()

apps/landing-page/src/components/TeamGrid.tsx

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ interface TeamMember {
44
name: string;
55
role: string;
66
photo: string;
7-
xHandle: string;
7+
xHandle?: string;
88
}
99

1010
const teamMembers: TeamMember[] = [
@@ -14,6 +14,11 @@ const teamMembers: TeamMember[] = [
1414
photo: '/team/khadim.jpg',
1515
xHandle: 'khad_im',
1616
},
17+
{
18+
name: 'Tim Besel',
19+
role: 'Engineer',
20+
photo: '/team/tim.jpg',
21+
},
1722
];
1823

1924
function TeamMemberCard({ member, index }: { member: TeamMember; index: number }) {
@@ -33,17 +38,19 @@ function TeamMemberCard({ member, index }: { member: TeamMember; index: number }
3338
</div>
3439
<p className="text-[15px] font-medium text-text-primary mt-4">{member.name}</p>
3540
<p className="text-[13px] text-text-muted mt-0.5">{member.role}</p>
36-
<a
37-
href={`https://x.com/${member.xHandle}`}
38-
target="_blank"
39-
rel="noopener noreferrer"
40-
className="inline-flex mt-2 text-text-muted hover:text-text-primary transition-colors duration-200"
41-
aria-label={`${member.name} on X`}
42-
>
43-
<svg viewBox="0 0 24 24" className="w-4 h-4 fill-current">
44-
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
45-
</svg>
46-
</a>
41+
{member.xHandle && (
42+
<a
43+
href={`https://x.com/${member.xHandle}`}
44+
target="_blank"
45+
rel="noopener noreferrer"
46+
className="inline-flex mt-2 text-text-muted hover:text-text-primary transition-colors duration-200"
47+
aria-label={`${member.name} on X`}
48+
>
49+
<svg viewBox="0 0 24 24" className="w-4 h-4 fill-current">
50+
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
51+
</svg>
52+
</a>
53+
)}
4754
</div>
4855
</div>
4956
);

0 commit comments

Comments
 (0)